diff options
Diffstat (limited to 'gbp/git/repository.py')
-rw-r--r-- | gbp/git/repository.py | 13 |
1 files changed, 10 insertions, 3 deletions
diff --git a/gbp/git/repository.py b/gbp/git/repository.py index a39fea1f..25d2bcac 100644 --- a/gbp/git/repository.py +++ b/gbp/git/repository.py @@ -1794,15 +1794,22 @@ class GitRepository(object): if ret: raise GitRepositoryError("Unable to archive %s: %s" % (treeish, err.strip())) - def collect_garbage(self, auto=False): + def collect_garbage(self, auto=False, prune=False, aggressive=False): """ Cleanup unnecessary files and optimize the local repository param auto: only cleanup if required param auto: C{bool} """ - args = ['--auto'] if auto else [] - self._git_command("gc", args) + args = GitArgs('--quiet') + if prune is True: + args.add('--prune') + else: + args.add_true(prune, '--prune=%s' % prune) + args.add_true(aggressive, '--aggressive') + args.add_true(auto, '--auto') + self._git_command("gc", args.args) + #{ Submodules |