branch: name detached HEAD analogous to status
"git status" carefully names a detached HEAD "at" resp. "from" a rev or ref depending on whether the detached HEAD has moved since. "git branch" always uses "from", which can be confusing, because a status-aware user would interpret this as moved detached HEAD. Make "git branch" use the same logic and wording. Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
970399e74c
commit
4b06318664
@ -589,9 +589,16 @@ static char *get_head_description(void)
|
||||
else if (state.bisect_in_progress)
|
||||
strbuf_addf(&desc, _("(no branch, bisect started on %s)"),
|
||||
state.branch);
|
||||
else if (state.detached_from)
|
||||
strbuf_addf(&desc, _("(detached from %s)"),
|
||||
state.detached_from);
|
||||
else if (state.detached_from) {
|
||||
/* TRANSLATORS: make sure these match _("HEAD detached at ")
|
||||
and _("HEAD detached from ") in wt-status.c */
|
||||
if (state.detached_at)
|
||||
strbuf_addf(&desc, _("(HEAD detached at %s)"),
|
||||
state.detached_from);
|
||||
else
|
||||
strbuf_addf(&desc, _("(HEAD detached from %s)"),
|
||||
state.detached_from);
|
||||
}
|
||||
else
|
||||
strbuf_addstr(&desc, _("(no branch)"));
|
||||
free(state.branch);
|
||||
|
@ -96,7 +96,7 @@ test_expect_success 'git branch -v pattern does not show branch summaries' '
|
||||
|
||||
test_expect_success 'git branch shows detached HEAD properly' '
|
||||
cat >expect <<EOF &&
|
||||
* (detached from $(git rev-parse --short HEAD^0))
|
||||
* (HEAD detached at $(git rev-parse --short HEAD^0))
|
||||
branch-one
|
||||
branch-two
|
||||
master
|
||||
@ -106,4 +106,41 @@ EOF
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git branch shows detached HEAD properly after moving' '
|
||||
cat >expect <<EOF &&
|
||||
* (HEAD detached from $(git rev-parse --short HEAD))
|
||||
branch-one
|
||||
branch-two
|
||||
master
|
||||
EOF
|
||||
git reset --hard HEAD^1 &&
|
||||
git branch >actual &&
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git branch shows detached HEAD properly from tag' '
|
||||
cat >expect <<EOF &&
|
||||
* (HEAD detached at fromtag)
|
||||
branch-one
|
||||
branch-two
|
||||
master
|
||||
EOF
|
||||
git tag fromtag master &&
|
||||
git checkout fromtag &&
|
||||
git branch >actual &&
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
test_expect_success 'git branch shows detached HEAD properly after moving from tag' '
|
||||
cat >expect <<EOF &&
|
||||
* (HEAD detached from fromtag)
|
||||
branch-one
|
||||
branch-two
|
||||
master
|
||||
EOF
|
||||
git reset --hard HEAD^1 &&
|
||||
git branch >actual &&
|
||||
test_i18ncmp expect actual
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user