diff options
| author | Taylor Blau <me@ttaylorr.com> | 2022-11-18 18:44:00 -0500 |
|---|---|---|
| committer | Taylor Blau <me@ttaylorr.com> | 2022-11-18 18:44:00 -0500 |
| commit | 26734da056d83fe362f1c3364f273062d2cc5a5b (patch) | |
| tree | df07e6a0db8ddf2e174cc1ceddcbe535ebeeef8d /builtin | |
| parent | 35a62bb5798092d491e6c7e688db6cb1418c9098 (diff) | |
| parent | eb20e63f5a96e24852c6ab1eca9f96af2648802f (diff) | |
| download | git-26734da056d83fe362f1c3364f273062d2cc5a5b.tar.xz | |
Merge branch 'jk/branch-delete-detached'
Fix a bug where `git branch -d` did not work on an orphaned HEAD.
* jk/branch-delete-detached:
branch: gracefully handle '-d' on orphan HEAD
Diffstat (limited to 'builtin')
| -rw-r--r-- | builtin/branch.c | 9 |
1 files changed, 3 insertions, 6 deletions
diff --git a/builtin/branch.c b/builtin/branch.c index 15be0c03ef..9470c980c1 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -150,7 +150,7 @@ static int branch_merged(int kind, const char *name, if (!reference_rev) reference_rev = head_rev; - merged = in_merge_bases(rev, reference_rev); + merged = reference_rev ? in_merge_bases(rev, reference_rev) : 0; /* * After the safety valve is fully redefined to "check with @@ -160,7 +160,7 @@ static int branch_merged(int kind, const char *name, * a gentle reminder is in order. */ if ((head_rev != reference_rev) && - in_merge_bases(rev, head_rev) != merged) { + (head_rev ? in_merge_bases(rev, head_rev) : 0) != merged) { if (merged) warning(_("deleting branch '%s' that has been merged to\n" " '%s', but not yet merged to HEAD."), @@ -235,11 +235,8 @@ static int delete_branches(int argc, const char **argv, int force, int kinds, } branch_name_pos = strcspn(fmt, "%"); - if (!force) { + if (!force) head_rev = lookup_commit_reference(the_repository, &head_oid); - if (!head_rev) - die(_("Couldn't look up commit object for HEAD")); - } for (i = 0; i < argc; i++, strbuf_reset(&bname)) { char *target = NULL; |
