Kaartic Sivaraam <kaarticsivaraam91196@xxxxxxxxx> writes: >> 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;