]> arthur.barton.de Git - bup.git/commitdiff
repo: add update_ref() and new_packwriter() to support bup-get
authorRob Browning <rlb@defaultvalue.org>
Sat, 31 Mar 2018 21:36:14 +0000 (16:36 -0500)
committerRob Browning <rlb@defaultvalue.org>
Sun, 3 Mar 2019 22:23:03 +0000 (16:23 -0600)
Signed-off-by: Rob Browning <rlb@defaultvalue.org>
Tested-by: Rob Browning <rlb@defaultvalue.org>
lib/bup/repo.py

index 3b178257b1d1a5197c6520104a0c9362b3653746..dd6ef3f90674537ee2813a12d1530bf94e4c32ac 100644 (file)
@@ -22,6 +22,7 @@ class LocalRepo:
     def __init__(self, repo_dir=None):
         self.repo_dir = realpath(repo_dir or git.repo())
         self._cp = git.cp(self.repo_dir)
+        self.update_ref = partial(git.update_ref, repo_dir=self.repo_dir)
         self.rev_list = partial(git.rev_list, repo_dir=self.repo_dir)
         self._id = _repo_id(self.repo_dir)
 
@@ -46,6 +47,13 @@ class LocalRepo:
     def is_remote(self):
         return False
 
+    def new_packwriter(self, compression_level=1,
+                       max_pack_size=None, max_pack_objects=None):
+        return git.PackWriter(repo_dir=self.repo_dir,
+                              compression_level=compression_level,
+                              max_pack_size=max_pack_size,
+                              max_pack_objects=max_pack_objects)
+
     def cat(self, ref):
         """If ref does not exist, yield (None, None, None).  Otherwise yield
         (oidx, type, size), and then all of the data associated with
@@ -81,6 +89,8 @@ class RemoteRepo:
     def __init__(self, address):
         self.address = address
         self.client = client.Client(address)
+        self.new_packwriter = self.client.new_packwriter
+        self.update_ref = self.client.update_ref
         self.rev_list = self.client.rev_list
         self._id = _repo_id(self.address)