From 58473689b81d13300df2cd9aecf65fee97a4432e Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Fri, 20 Jan 2017 11:31:37 +0100 Subject: GitRepository: make garbage_collect more useful --- gbp/git/repository.py | 13 ++++++++++--- tests/doctests/test_GitRepository.py | 4 +++- 2 files changed, 13 insertions(+), 4 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 diff --git a/tests/doctests/test_GitRepository.py b/tests/doctests/test_GitRepository.py index 348c5602..cc3933a4 100644 --- a/tests/doctests/test_GitRepository.py +++ b/tests/doctests/test_GitRepository.py @@ -823,7 +823,7 @@ def test_checkout(): def test_gc(): """ - Test garbace collection + Test garbage collection Methods tested: - L{gbp.git.GitRepository.collect_garbage} @@ -831,6 +831,8 @@ def test_gc(): >>> import gbp.git >>> repo = gbp.git.GitRepository(dirs['repo']) >>> repo.collect_garbage() + >>> repo.collect_garbage(prune=True) + >>> repo.collect_garbage(prune='all', aggressive=True) """ -- cgit v1.2.3