diff options
| author | René Scharfe <rene.scharfe@lsrfire.ath.cx> | 2012-10-18 14:02:51 +0200 | 
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2012-10-18 14:36:16 -0700 | 
| commit | f5d0e162c49320d5069a63a05960fc5a38d72423 (patch) | |
| tree | fc395b4c249c32cbb31b3c9f31805e385699250f | |
| parent | 87a5461fa7b30f7b7baf27204f10219d61500fbf (diff) | |
| download | git-f5d0e162c49320d5069a63a05960fc5a38d72423.tar.gz | |
branch: factor out check_branch_commit()
Move the code to perform checks on the tip commit of a branch
to its own function.
Signed-off-by: Rene Scharfe <rene.scharfe@lsrfire.ath.cx>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
| -rw-r--r-- | builtin/branch.c | 33 | 
1 files changed, 21 insertions, 12 deletions
diff --git a/builtin/branch.c b/builtin/branch.c index ffd26849c7..852019ed8b 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -154,10 +154,28 @@ static int branch_merged(int kind, const char *name,  	return merged;  } +static int check_branch_commit(const char *branchname, const char *refname, +			       unsigned char *sha1, struct commit *head_rev, +			       int kinds, int force) +{ +	struct commit *rev = lookup_commit_reference(sha1); +	if (!rev) { +		error(_("Couldn't look up commit object for '%s'"), refname); +		return -1; +	} +	if (!force && !branch_merged(kinds, branchname, rev, head_rev)) { +		error(_("The branch '%s' is not fully merged.\n" +		      "If you are sure you want to delete it, " +		      "run 'git branch -D %s'."), branchname, branchname); +		return -1; +	} +	return 0; +} +  static int delete_branches(int argc, const char **argv, int force, int kinds,  			   int quiet)  { -	struct commit *rev, *head_rev = NULL; +	struct commit *head_rev = NULL;  	unsigned char sha1[20];  	char *name = NULL;  	const char *fmt; @@ -206,17 +224,8 @@ static int delete_branches(int argc, const char **argv, int force, int kinds,  			continue;  		} -		rev = lookup_commit_reference(sha1); -		if (!rev) { -			error(_("Couldn't look up commit object for '%s'"), name); -			ret = 1; -			continue; -		} - -		if (!force && !branch_merged(kinds, bname.buf, rev, head_rev)) { -			error(_("The branch '%s' is not fully merged.\n" -			      "If you are sure you want to delete it, " -			      "run 'git branch -D %s'."), bname.buf, bname.buf); +		if (check_branch_commit(bname.buf, name, sha1, head_rev, kinds, +					force)) {  			ret = 1;  			continue;  		}  | 
