summaryrefslogtreecommitdiff
path: root/wt-status.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2015-03-20 20:11:46 (GMT)
committerJunio C Hamano <gitster@pobox.com>2015-03-20 20:11:46 (GMT)
commit38f6ae90de2cedca6a4aaed13ecac365ffa9672c (patch)
treebd84ae2639dd8aa3701c8577e73f177e760a29ea /wt-status.c
parentd6c988ddfacd49edf1eb16084af36062d8eb7121 (diff)
parent4b06318664638d306cad920fd86eb63b69739310 (diff)
downloadgit-38f6ae90de2cedca6a4aaed13ecac365ffa9672c.zip
git-38f6ae90de2cedca6a4aaed13ecac365ffa9672c.tar.gz
git-38f6ae90de2cedca6a4aaed13ecac365ffa9672c.tar.bz2
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 422dc0e..7036fa2 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 ");