Thread (2 messages) flat view 2 messages, 2 authors, 2017-06-12

Re: [PATCH] wt-status.c: Modified status message shown for a parent-less branch

From: Junio C Hamano <hidden>
Date: 2017-06-12 18:29:07
Subsystem: the rest · Maintainer: Linus Torvalds

Possibly related (same subject, not in this thread)

Kaartic Sivaraam [off-list ref] writes:
quoted
Adding a bit to "struct wt_status" is a good first step to allow all
three (i.e. in addition to "Initial commit" and "Changes to be
committed", "Changes not staged for commit" is the other one that
shares this potential confusion factor) to be phrased in a way that
is more appropriate in an answer to the question "what is the status
of my working area?", I would think.

Thanks.
It seems that the current change has to be discarded altogether and
further the change required doesn't look trivial. This seems to warrant
some bit of research of the code base. As a first step I would like to
know which part of the code base creates the commit template. I guess
much can't be done without knowing how it's created.
Perhaps something along this line (warning: not even compile
tested)?

 builtin/commit.c |  1 +
 wt-status.c      | 15 ++++++++++++---
 wt-status.h      |  1 +
 3 files changed, 14 insertions(+), 3 deletions(-)
diff --git a/builtin/commit.c b/builtin/commit.c
index da1ba4c862..ffb2d71d3d 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1652,6 +1652,7 @@ int cmd_commit(int argc, const char **argv, const char *prefix)
 		usage_with_options(builtin_commit_usage, builtin_commit_options);
 
 	status_init_config(&s, git_commit_config);
+	s.commit_template = 1;
 	status_format = STATUS_FORMAT_NONE; /* Ignore status.short */
 	s.colopts = 0;
 
diff --git a/wt-status.c b/wt-status.c
index 25aafc35c8..006aaf9e76 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -196,7 +196,10 @@ static void wt_longstatus_print_cached_header(struct wt_status *s)
 {
 	const char *c = color(WT_STATUS_HEADER, s);
 
-	status_printf_ln(s, c, _("Changes to be committed:"));
+	if (s->commit_template)
+		status_printf_ln(s, c, _("Changes to be committed:"));
+	else
+		status_printf_ln(s, c, _("Changes already in the index:"));
 	if (!s->hints)
 		return;
 	if (s->whence != FROM_COMMIT)
@@ -214,7 +217,10 @@ static void wt_longstatus_print_dirty_header(struct wt_status *s,
 {
 	const char *c = color(WT_STATUS_HEADER, s);
 
-	status_printf_ln(s, c, _("Changes not staged for commit:"));
+	if (s->commit_template)
+		status_printf_ln(s, c, _("Changes not staged for commit:"));
+	else
+		status_printf_ln(s, c, _("Changes not yet in the index:"));
 	if (!s->hints)
 		return;
 	if (!has_deleted)
@@ -1578,7 +1584,10 @@ static void wt_longstatus_print(struct wt_status *s)
 
 	if (s->is_initial) {
 		status_printf_ln(s, color(WT_STATUS_HEADER, s), "%s", "");
-		status_printf_ln(s, color(WT_STATUS_HEADER, s), _("Initial commit"));
+		status_printf_ln(s, color(WT_STATUS_HEADER, s),
+				 s->commit_template
+				 ? _("Initial commit")
+				 : _("No commit yet on the branch"));
 		status_printf_ln(s, color(WT_STATUS_HEADER, s), "%s", "");
 	}
 
diff --git a/wt-status.h b/wt-status.h
index 8a3864783b..17f72f2346 100644
--- a/wt-status.h
+++ b/wt-status.h
@@ -77,6 +77,7 @@ struct wt_status {
 	unsigned colopts;
 	int null_termination;
 	int show_branch;
+	int commit_template;
 	int hints;
 
 	enum wt_status_format status_format;
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help