summaryrefslogtreecommitdiff
path: root/wt-status.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-03-20 13:11:46 -0700
committerJunio C Hamano <gitster@pobox.com>2015-03-20 13:11:46 -0700
commit38f6ae90de2cedca6a4aaed13ecac365ffa9672c (patch)
treebd84ae2639dd8aa3701c8577e73f177e760a29ea /wt-status.c
parentd6c988ddfacd49edf1eb16084af36062d8eb7121 (diff)
parent4b06318664638d306cad920fd86eb63b69739310 (diff)
downloadgit-38f6ae90de2cedca6a4aaed13ecac365ffa9672c.tar.gz
Merge branch 'mg/detached-head-report'
"git branch" on a detached HEAD always said "(detached from xyz)", even when "git status" would report "detached at xyz". The HEAD is actually at xyz and haven't been moved since it was detached in such a case, but the user cannot read what the current value of HEAD is when "detached from" is used. * mg/detached-head-report: branch: name detached HEAD analogous to status wt-status: refactor detached HEAD analysis
Diffstat (limited to 'wt-status.c')
-rw-r--r--wt-status.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/wt-status.c b/wt-status.c
index 422dc0e70c..7036fa28dc 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1242,6 +1242,8 @@ static void wt_status_get_detached_from(struct wt_status_state *state)
state->detached_from =
xstrdup(find_unique_abbrev(cb.nsha1, DEFAULT_ABBREV));
hashcpy(state->detached_sha1, cb.nsha1);
+ state->detached_at = !get_sha1("HEAD", sha1) &&
+ !hashcmp(sha1, state->detached_sha1);
free(ref);
strbuf_release(&cb.buf);
@@ -1330,10 +1332,8 @@ void wt_status_print(struct wt_status *s)
on_what = _("rebase in progress; onto ");
branch_name = state.onto;
} else if (state.detached_from) {
- unsigned char sha1[20];
branch_name = state.detached_from;
- if (!get_sha1("HEAD", sha1) &&
- !hashcmp(sha1, state.detached_sha1))
+ if (state.detached_at)
on_what = _("HEAD detached at ");
else
on_what = _("HEAD detached from ");