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>maint
parent
87a5461fa7
commit
f5d0e162c4
|
@ -154,10 +154,28 @@ static int branch_merged(int kind, const char *name,
|
||||||
return merged;
|
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,
|
static int delete_branches(int argc, const char **argv, int force, int kinds,
|
||||||
int quiet)
|
int quiet)
|
||||||
{
|
{
|
||||||
struct commit *rev, *head_rev = NULL;
|
struct commit *head_rev = NULL;
|
||||||
unsigned char sha1[20];
|
unsigned char sha1[20];
|
||||||
char *name = NULL;
|
char *name = NULL;
|
||||||
const char *fmt;
|
const char *fmt;
|
||||||
|
@ -206,17 +224,8 @@ static int delete_branches(int argc, const char **argv, int force, int kinds,
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
rev = lookup_commit_reference(sha1);
|
if (check_branch_commit(bname.buf, name, sha1, head_rev, kinds,
|
||||||
if (!rev) {
|
force)) {
|
||||||
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);
|
|
||||||
ret = 1;
|
ret = 1;
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue