diff options
author | Jeff King <peff@peff.net> | 2008-09-03 14:07:26 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-09-03 12:36:38 -0700 |
commit | bea005e21bf9f4f19d5e2afe538a5ba9123bdbdc (patch) | |
tree | b50998d68b258b1f7682a9cb95b2667a6b26fe57 | |
parent | 44a68fd526a70f0aaf213143e22f1257f296e724 (diff) | |
download | git-bea005e21bf9f4f19d5e2afe538a5ba9123bdbdc.tar.gz |
checkout: fix message when leaving detached HEAD
The shell version of git checkout would print:
Previous HEAD position was 1234abcd... commit subject line
when leaving a detached HEAD for another commit. Ths C
version attempted to implement this, but got the condition
wrong such that the behavior never triggered.
This patch simplifies the conditions for showing the message
to the ones used by the shell version: any time we are
leaving a detached HEAD and the new and old commits are not
the same (this suppresses it for the "git checkout -b new"
case recommended when you enter the detached state).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | builtin-checkout.c | 10 |
1 files changed, 4 insertions, 6 deletions
diff --git a/builtin-checkout.c b/builtin-checkout.c index 411cc513c6..f6f8f086de 100644 --- a/builtin-checkout.c +++ b/builtin-checkout.c @@ -386,13 +386,11 @@ static int switch_branches(struct checkout_opts *opts, struct branch_info *new) } /* - * If the new thing isn't a branch and isn't HEAD and we're - * not starting a new branch, and we want messages, and we - * weren't on a branch, and we're moving to a new commit, - * describe the old commit. + * If we were on a detached HEAD, but we are now moving to + * a new commit, we want to mention the old commit once more + * to remind the user that it might be lost. */ - if (!new->path && strcmp(new->name, "HEAD") && !opts->new_branch && - !opts->quiet && !old.path && new->commit != old.commit) + if (!opts->quiet && !old.path && new->commit != old.commit) describe_detached_head("Previous HEAD position was", old.commit); if (!old.commit) { |