From 4b06318664638d306cad920fd86eb63b69739310 Mon Sep 17 00:00:00 2001 From: Michael J Gruber Date: Fri, 6 Mar 2015 16:04:07 +0100 Subject: [PATCH] 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 Signed-off-by: Junio C Hamano --- builtin/branch.c | 13 ++++++++++--- t/t3203-branch-output.sh | 39 ++++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 4 deletions(-) diff --git a/builtin/branch.c b/builtin/branch.c index dc6f0b266c..46ad6f5b0d 100644 --- a/builtin/branch.c +++ b/builtin/branch.c @@ -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); diff --git a/t/t3203-branch-output.sh b/t/t3203-branch-output.sh index ba4f98e800..f51d0f3cad 100755 --- a/t/t3203-branch-output.sh +++ b/t/t3203-branch-output.sh @@ -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 <expect <actual && + test_i18ncmp expect actual +' + +test_expect_success 'git branch shows detached HEAD properly from tag' ' + cat >expect <actual && + test_i18ncmp expect actual +' + +test_expect_success 'git branch shows detached HEAD properly after moving from tag' ' + cat >expect <actual && + test_i18ncmp expect actual +' + test_done