Bladeren bron

Move shallow implementation into BaseRepo.

Jelmer Vernooij 6 jaren geleden
bovenliggende
commit
73f42cc49c
1 gewijzigde bestanden met toevoegingen van 13 en 19 verwijderingen
  1. 13 19
      dulwich/repo.py

+ 13 - 19
dulwich/repo.py

@@ -466,7 +466,11 @@ class BaseRepo(object):
 
         :return: Set of shallow commits.
         """
-        return set()
+        f = self.get_named_file('shallow')
+        if f is None:
+            return set()
+        with f:
+            return set(l.strip() for l in f)
 
     def update_shallow(self, new_shallow, new_unshallow):
         """Update the list of shallow objects.
@@ -474,7 +478,14 @@ class BaseRepo(object):
         :param new_shallow: Newly shallow objects
         :param new_unshallow: Newly no longer shallow objects
         """
-        raise NotImplementedError(self.update_shallow)
+        shallow = self.get_shallow()
+        if new_shallow:
+            shallow.update(new_shallow)
+        if new_unshallow:
+            shallow.difference_update(new_unshallow)
+        self._put_named_file(
+            'shallow',
+            b''.join([sha + b'\n' for sha in shallow]))
 
     def get_peeled(self, ref):
         """Get the peeled value of a ref.
@@ -936,23 +947,6 @@ class Repo(BaseRepo):
                 return None
             raise
 
-    def get_shallow(self):
-        f = self.get_named_file('shallow')
-        if f is None:
-            return set()
-        with f:
-            return set(l.strip() for l in f)
-
-    def update_shallow(self, new_shallow, new_unshallow):
-        shallow = self.get_shallow()
-        if new_shallow:
-            shallow.update(new_shallow)
-        if new_unshallow:
-            shallow.difference_update(new_unshallow)
-        self._put_named_file(
-            'shallow',
-            b''.join([sha + b'\n' for sha in shallow]))
-
     def index_path(self):
         """Return path to the index file."""
         return os.path.join(self.controldir(), INDEX_FILENAME)