Przeglądaj źródła

Implement Repo.__setitem__ and Repo.__delitem__.

Jelmer Vernooij 16 lat temu
rodzic
commit
bd3de4227a
1 zmienionych plików z 15 dodań i 0 usunięć
  1. 15 0
      dulwich/repo.py

+ 15 - 0
dulwich/repo.py

@@ -353,6 +353,21 @@ class Repo(object):
         if len(name) in (20, 40):
             return self.object_store[name]
         return self.object_store[self.refs[name]]
+    
+    def __setitem__(self, name, value):
+        if name.startswith("refs/") or name == "HEAD":
+            if isinstance(value, ShaFile):
+                self.refs[name] = value.id
+            elif isinstance(value, str):
+                self.refs[name] = value
+            else:
+                raise TypeError(value)
+        raise ValueError(name)
+
+    def __delitem__(self, name):
+        if name.startswith("refs") or name == "HEAD":
+            del self.refs[name]
+        raise ValueError(name)
 
     @classmethod
     def init(cls, path, mkdir=True):