зеркало из https://github.com/microsoft/git.git
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>
This commit is contained in:
Родитель
9874fca712
Коммит
970399e74c
|
@ -1222,6 +1222,8 @@ static void wt_status_get_detached_from(struct wt_status_state *state)
|
||||||
state->detached_from =
|
state->detached_from =
|
||||||
xstrdup(find_unique_abbrev(cb.nsha1, DEFAULT_ABBREV));
|
xstrdup(find_unique_abbrev(cb.nsha1, DEFAULT_ABBREV));
|
||||||
hashcpy(state->detached_sha1, cb.nsha1);
|
hashcpy(state->detached_sha1, cb.nsha1);
|
||||||
|
state->detached_at = !get_sha1("HEAD", sha1) &&
|
||||||
|
!hashcmp(sha1, state->detached_sha1);
|
||||||
|
|
||||||
free(ref);
|
free(ref);
|
||||||
strbuf_release(&cb.buf);
|
strbuf_release(&cb.buf);
|
||||||
|
@ -1310,10 +1312,8 @@ void wt_status_print(struct wt_status *s)
|
||||||
on_what = _("rebase in progress; onto ");
|
on_what = _("rebase in progress; onto ");
|
||||||
branch_name = state.onto;
|
branch_name = state.onto;
|
||||||
} else if (state.detached_from) {
|
} else if (state.detached_from) {
|
||||||
unsigned char sha1[20];
|
|
||||||
branch_name = state.detached_from;
|
branch_name = state.detached_from;
|
||||||
if (!get_sha1("HEAD", sha1) &&
|
if (state.detached_at)
|
||||||
!hashcmp(sha1, state.detached_sha1))
|
|
||||||
on_what = _("HEAD detached at ");
|
on_what = _("HEAD detached at ");
|
||||||
else
|
else
|
||||||
on_what = _("HEAD detached from ");
|
on_what = _("HEAD detached from ");
|
||||||
|
|
|
@ -84,6 +84,7 @@ struct wt_status_state {
|
||||||
int cherry_pick_in_progress;
|
int cherry_pick_in_progress;
|
||||||
int bisect_in_progress;
|
int bisect_in_progress;
|
||||||
int revert_in_progress;
|
int revert_in_progress;
|
||||||
|
int detached_at;
|
||||||
char *branch;
|
char *branch;
|
||||||
char *onto;
|
char *onto;
|
||||||
char *detached_from;
|
char *detached_from;
|
||||||
|
|
Загрузка…
Ссылка в новой задаче