浏览代码

Allow ZERO_SHA to be used to mean 'ref should not exist'.

Jelmer Vernooij 8 年之前
父节点
当前提交
9f1d79c52c
共有 1 个文件被更改,包括 3 次插入2 次删除
  1. 3 2
      dulwich/refs.py

+ 3 - 2
dulwich/refs.py

@@ -32,6 +32,7 @@ from dulwich.errors import (
 from dulwich.objects import (
     git_line,
     valid_hexsha,
+    ZERO_SHA,
     )
 from dulwich.file import (
     GitFile,
@@ -317,7 +318,7 @@ class DictRefsContainer(RefsContainer):
         self._refs[name] = SYMREF + other
 
     def set_if_equals(self, name, old_ref, new_ref):
-        if old_ref is not None and self._refs.get(name, None) != old_ref:
+        if old_ref is not None and self._refs.get(name, ZERO_SHA) != old_ref:
             return False
         realnames, _ = self.follow(name)
         for realname in realnames:
@@ -332,7 +333,7 @@ class DictRefsContainer(RefsContainer):
         return True
 
     def remove_if_equals(self, name, old_ref):
-        if old_ref is not None and self._refs.get(name, None) != old_ref:
+        if old_ref is not None and self._refs.get(name, ZERO_SHA) != old_ref:
             return False
         del self._refs[name]
         return True