Просмотр исходного кода

Only determine hexsha when really necessary.

Jelmer Vernooij 16 лет назад
Родитель
Сommit
d374936cde
1 измененных файлов с 3 добавлено и 1 удалено
  1. 3 1
      dulwich/object_store.py

+ 3 - 1
dulwich/object_store.py

@@ -114,7 +114,7 @@ class ObjectStore(object):
             hexsha = name
             hexsha = name
         elif len(name) == 20:
         elif len(name) == 20:
             sha = name
             sha = name
-            hexsha = sha_to_hex(name)
+            hexsha = None
         else:
         else:
             raise AssertionError
             raise AssertionError
         for pack in self.packs:
         for pack in self.packs:
@@ -122,6 +122,8 @@ class ObjectStore(object):
                 return pack.get_raw(sha, self.get_raw)
                 return pack.get_raw(sha, self.get_raw)
             except KeyError:
             except KeyError:
                 pass
                 pass
+        if hexsha is None: 
+            hexsha = sha_to_hex(name)
         ret = self._get_shafile(hexsha)
         ret = self._get_shafile(hexsha)
         if ret is not None:
         if ret is not None:
             return ret.as_raw_string()
             return ret.as_raw_string()