diff options
-rw-r--r-- | builtin/checkout.c | 13 | ||||
-rwxr-xr-x | t/t2020-checkout-detach.sh | 2 |
2 files changed, 8 insertions, 7 deletions
diff --git a/builtin/checkout.c b/builtin/checkout.c index 6b9061f26f..160f678b8c 100644 --- a/builtin/checkout.c +++ b/builtin/checkout.c @@ -671,10 +671,10 @@ static void suggest_reattach(struct commit *commit, struct rev_info *revs) * HEAD. If it is not reachable from any ref, this is the last chance * for the user to do so without resorting to reflog. */ -static void orphaned_commit_warning(struct commit *commit) +static void orphaned_commit_warning(struct commit *old, struct commit *new) { struct rev_info revs; - struct object *object = &commit->object; + struct object *object = &old->object; struct object_array refs; init_revisions(&revs, NULL); @@ -684,16 +684,17 @@ static void orphaned_commit_warning(struct commit *commit) add_pending_object(&revs, object, sha1_to_hex(object->sha1)); for_each_ref(add_pending_uninteresting_ref, &revs); + add_pending_sha1(&revs, "HEAD", new->object.sha1, UNINTERESTING); refs = revs.pending; revs.leak_pending = 1; if (prepare_revision_walk(&revs)) die(_("internal error in revision walk")); - if (!(commit->object.flags & UNINTERESTING)) - suggest_reattach(commit, &revs); + if (!(old->object.flags & UNINTERESTING)) + suggest_reattach(old, &revs); else - describe_detached_head(_("Previous HEAD position was"), commit); + describe_detached_head(_("Previous HEAD position was"), old); clear_commit_marks_for_object_array(&refs, ALL_REV_FLAGS); free(refs.objects); @@ -730,7 +731,7 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new) } if (!opts->quiet && !old.path && old.commit && new->commit != old.commit) - orphaned_commit_warning(old.commit); + orphaned_commit_warning(old.commit, new->commit); update_refs_for_switch(opts, &old, new); diff --git a/t/t2020-checkout-detach.sh b/t/t2020-checkout-detach.sh index 202ca90c34..f63333b64e 100755 --- a/t/t2020-checkout-detach.sh +++ b/t/t2020-checkout-detach.sh @@ -126,7 +126,7 @@ test_expect_success 'checkout warns orphaning 1 of 2 commits' ' ' test_expect_success 'checkout warns orphaning 1 of 2 commits: output' ' - check_orphan_warning stderr "2 commits" + check_orphan_warning stderr "1 commit" ' test_expect_success 'checkout does not warn leaving ref tip' ' |