From e3482c406796152ea3ab9d2c3c4afe43ca5056fd Mon Sep 17 00:00:00 2001 From: Guido Günther Date: Tue, 10 Jan 2012 15:58:56 +0100 Subject: GitRepository: Add branch_contains() to check if a branch contains a specific commit --- gbp/git/repository.py | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) (limited to 'gbp/git/repository.py') diff --git a/gbp/git/repository.py b/gbp/git/repository.py index 92cd40d4..640cc88a 100644 --- a/gbp/git/repository.py +++ b/gbp/git/repository.py @@ -370,6 +370,27 @@ class GitRepository(object): args = [ '-m', msg ] + args self._git_command("update-ref", args) + def branch_contains(self, branch, commit, remote=False): + """ + Check if branch I{branch} contains commit I{commit} + + @param branch: the branch the commit should be on + @type branch: C{str} + @param commit: the C{str} commit to check + @type commit: C{str} + @param remote: whether to check remote instead of local branches + @type remote: C{bool} + """ + args = GitArgs('--contains') + args.add_true(remote, '-r') + args.add(commit) + + out, ret = self.__git_getoutput('branch', args.args) + for line in out: + if line.strip() == branch: + return True + return False + #{ Tags def create_tag(self, name, msg=None, commit=None, sign=False, keyid=None): -- cgit v1.2.3