From bc409569f58a2c9c1c0393c923650bf84f159ddc Mon Sep 17 00:00:00 2001 From: Markus Lehtonen Date: Wed, 4 Sep 2013 11:58:21 +0300 Subject: GitRepository: Add clean() method Signed-off-by: Lingchaox Xin Signed-off-by: Markus Lehtonen --- gbp/git/repository.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gbp/git') diff --git a/gbp/git/repository.py b/gbp/git/repository.py index 41e6471..6eed588 100644 --- a/gbp/git/repository.py +++ b/gbp/git/repository.py @@ -765,6 +765,27 @@ class GitRepository(object): break return (ret, "".join(out)) + def clean(self, directories=False, force=False, dry_run=False): + """ + Remove untracked files from the working tree. + + @param directories: remove untracked directories, too + @type directories: C{bool} + @param force: satisfy git configuration variable clean.requireForce + @type force: C{bool} + @param dry_run: don’t actually remove anything + @type dry_run: C{bool} + """ + options = GitArgs() + options.add_true(directories, '-d') + options.add_true(force, '-f') + options.add_true(dry_run, '-n') + + _out, err, ret = self._git_inout('clean', options.args, + extra_env={'LC_ALL': 'C'}) + if ret: + raise GitRepositoryError("Can't execute repository clean: %s" % err) + def is_empty(self): """ Is the repository empty? -- cgit v1.2.3