From: Michael J Gruber <git@drmicha.warpmail.net>
To: git@vger.kernel.org
Cc: Junio C Hamano <gitster@pobox.com>
Subject: [PATCHv2 1/2] wt-status: refactor detached HEAD analysis
Date: Fri, 6 Mar 2015 16:04:06 +0100 [thread overview]
Message-ID: <f431cf3ed2348db4badaac061481ff7d777d4f36.1425653932.git.git@drmicha.warpmail.net> (raw)
In-Reply-To: <54EB4579.3000103@xiplink.com>
In-Reply-To: <cover.1425653932.git.git@drmicha.warpmail.net>
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>
---
wt-status.c | 6 +++---
wt-status.h | 1 +
2 files changed, 4 insertions(+), 3 deletions(-)
diff --git a/wt-status.c b/wt-status.c
index 29666d0..e7c1a4b 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 283a9fe..e0a99f7 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;
--
2.3.1.303.g5174db1
next prev parent reply other threads:[~2015-03-06 15:04 UTC|newest]
Thread overview: 11+ messages / expand[flat|nested] mbox.gz Atom feed top
2015-02-22 17:38 [RFC/PATCH] branch: name detached HEAD analogous to status Michael J Gruber
2015-02-22 19:21 ` Junio C Hamano
2015-02-23 8:50 ` Michael J Gruber
2015-02-23 15:21 ` Marc Branchaud
2015-03-06 15:04 ` [PATCHv2 0/2] branch output for detached HEAD Michael J Gruber
2015-03-06 15:04 ` Michael J Gruber [this message]
2015-03-06 15:04 ` [PATCHv2 2/2] branch: name detached HEAD analogous to status Michael J Gruber
2015-03-06 20:23 ` Junio C Hamano
2015-02-23 15:12 ` [RFC/PATCH] " Marc Branchaud
2015-02-23 16:24 ` Michael J Gruber
2015-02-23 17:23 ` Marc Branchaud
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
List information: http://vger.kernel.org/majordomo-info.html
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=f431cf3ed2348db4badaac061481ff7d777d4f36.1425653932.git.git@drmicha.warpmail.net \
--to=git@drmicha.warpmail.net \
--cc=git@vger.kernel.org \
--cc=gitster@pobox.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://80x24.org/mirrors/git.git
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).