diff options
author | Michael J Gruber <git@drmicha.warpmail.net> | 2015-03-06 16:04:06 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2015-03-06 11:52:35 -0800 |
commit | 970399e74c14df4dc82f10e1fcd0f12531e9b305 (patch) | |
tree | bf5f0c9e68a055ad2d2ce88edff4be690b45c82a | |
parent | 9874fca7122563e28d699a911404fc49d2a24f1c (diff) | |
download | git-970399e74c14df4dc82f10e1fcd0f12531e9b305.tar.gz |
wt-status: refactor detached HEAD analysis
wt_status_print() is the only caller of wt_status_get_detached_from().
The latter performs most of the analysis of a detached HEAD, including
finding state->detached_from; the caller checks whether the detached
HEAD is still at state->detached_from or has moved away.
Move that last bit of analysis to wt_status_get_detached_from(), too,
and store the boolean result in state->detached_at.
Signed-off-by: Michael J Gruber <git@drmicha.warpmail.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
-rw-r--r-- | wt-status.c | 6 | ||||
-rw-r--r-- | wt-status.h | 1 |
2 files changed, 4 insertions, 3 deletions
diff --git a/wt-status.c b/wt-status.c index b54eac5af6..8b7543b0be 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1222,6 +1222,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); @@ -1310,10 +1312,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 "); diff --git a/wt-status.h b/wt-status.h index 283a9fef03..e0a99f75c7 100644 --- a/wt-status.h +++ b/wt-status.h @@ -84,6 +84,7 @@ struct wt_status_state { int cherry_pick_in_progress; int bisect_in_progress; int revert_in_progress; + int detached_at; char *branch; char *onto; char *detached_from; |