]> git.ipfire.org Git - people/jschlag/pbs.git/commitdiff
Bring back a lost function
authorMichael Tremer <michael.tremer@ipfire.org>
Mon, 9 Oct 2017 22:31:36 +0000 (23:31 +0100)
committerMichael Tremer <michael.tremer@ipfire.org>
Mon, 9 Oct 2017 22:31:36 +0000 (23:31 +0100)
Signed-off-by: Michael Tremer <michael.tremer@ipfire.org>
src/buildservice/sources.py

index 5e34d548062ccd1fe132328fe8776ae6977c84c8..b0b00e2fa2c104f9db5254cd2aa5b0b25115e1d8 100644 (file)
@@ -7,6 +7,7 @@ import subprocess
 
 from . import base
 from . import database
+from . import git
 
 class Sources(base.Object):
        def get_all(self):
@@ -50,6 +51,22 @@ class Sources(base.Object):
                if commit:
                        return Commit(self.pakfire, commit.id)
 
+       def pull(self):
+               for source in self.get_all():
+                       repo = git.Repo(self.pakfire, source.id, mode="mirror")
+
+                       # If the repository is not yet cloned, we need to make a local
+                       # clone to work with.
+                       if not repo.cloned:
+                               repo.clone()
+
+                       # Otherwise we just fetch updates.
+                       else:
+                               repo.fetch()
+
+                       # Import all new revisions.
+                       repo.import_revisions()
+
 
 class Commit(base.Object):
        def __init__(self, pakfire, id):