Browse Source

Split out DiskRefsContainer.

Jelmer Vernooij 16 years ago
parent
commit
1ec5e8e00f
1 changed files with 16 additions and 10 deletions
  1. 16 10
      dulwich/repo.py

+ 16 - 10
dulwich/repo.py

@@ -62,6 +62,18 @@ def follow_ref(container, name):
 
 class RefsContainer(object):
 
+    def as_dict(self, base):
+        raise NotImplementedError(self.as_dict)
+
+    def follow(self, name):
+        return follow_ref(self, name)
+
+    def set_ref(self, name, other):
+        self['HEAD'] = "ref: %s\n" % other
+
+
+class DiskRefsContainer(RefsContainer):
+
     def __init__(self, path):
         self.path = path
 
@@ -81,9 +93,6 @@ class RefsContainer(object):
             name = name.replace("/", os.path.sep)
         return os.path.join(self.path, name)
 
-    def follow(self, name):
-        return follow_ref(self, name)
-
     def __getitem__(self, name):
         file = self.refpath(name)
         if not os.path.exists(file):
@@ -94,9 +103,6 @@ class RefsContainer(object):
         finally:
             f.close()
 
-    def set_ref(self, name, other):
-        self['HEAD'] = "ref: %s\n" % other
-
     def __setitem__(self, name, ref):
         file = self.refpath(name)
         dirpath = os.path.dirname(file)
@@ -114,15 +120,15 @@ class RefsContainer(object):
             os.remove(file)
 
 
-class Tags(RefsContainer):
+class Tags(DiskRefsContainer):
     """Tags container."""
 
     def __init__(self, tagdir, tags):
-        RefsContainer.__init__(self, tagdir)
+        DiskRefsContainer.__init__(self, tagdir)
         self.tags = tags
 
     def __setitem__(self, name, value):
-        RefsContainer.__setitem__(self, name, value)
+        DiskRefsContainer.__setitem__(self, name, value)
         self.tags[name] = value
 
     def __getitem__(self, name):
@@ -169,7 +175,7 @@ class Repo(object):
         else:
             raise NotGitRepository(root)
         self.path = root
-        self.refs = RefsContainer(self.controldir())
+        self.refs = DiskRefsContainer(self.controldir())
         self.tags = Tags(self.tagdir(), self.get_tags())
         self.object_store = DiskObjectStore(
             os.path.join(self.controldir(), OBJECTDIR))