On Sun, Jun 18 2017, Kaartic Sivaraam jotted: > "git status" indicated "Initial commit" when HEAD points at > an unborn branch. This message is shared with the commit > log template "git commit" prepares for the user when > creating a commit (i.e. "You are about to create the initial > commit"), and is OK as long as the reader is aware of the > nature of the message (i.e. it guides the user working > toward the next commit), but was confusing to new users, > especially the ones who do "git commit -m message" without > having a chance to pay attention to the commit log template. > > The "Initial commit" indication wasn't an issue in the commit > template. Taking that into consideration, a good solution would > be to contextually use different messages to indicate the user > that there were no commits in this branch. > > A few alternatives considered were, > > * Waiting for initial commit > * Your current branch does not have any commits > * Current branch waiting for initial commit > > Patch-by: Junio C Hamano <gitster@xxxxxxxxx> > Signed-off-by: Kaartic Sivaraam <kaarticsivaraam91196@xxxxxxxxx> > --- > builtin/commit.c | 1 + > wt-status.c | 5 ++++- > wt-status.h | 1 + > 3 files changed, 6 insertions(+), 1 deletion(-) > > diff --git a/builtin/commit.c b/builtin/commit.c > index 1d805f5da..0f36d2ac3 100644 > --- a/builtin/commit.c > +++ b/builtin/commit.c > @@ -1648,6 +1648,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 037548496..34aa1af66 100644 > --- a/wt-status.c > +++ b/wt-status.c > @@ -1576,7 +1576,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 commits yet on the branch")); Why not simply "No commits yet", saying "on the branch" is needlessy duplicating information in the context of the status output in which this is printed, i.e. now you have: $ ~/g/git/git-status On branch master No commits yet on the branch nothing to commit (create/copy files and use "git add" to track) But we can just more succinctly say: $ ~/g/git/git-status On branch master No commits yet nothing to commit (create/copy files and use "git add" to track) Since we've already pointed out that the user is on a branch. Also, if something is worth fixing it's worth testing for, so you can fix this test into the patch: diff --git a/t/t7508-status.sh b/t/t7508-status.sh index 79427840a4..b9532d201d 100755 --- a/t/t7508-status.sh +++ b/t/t7508-status.sh @@ -1608,4 +1608,15 @@ test_expect_success 'git commit -m will commit a staged but ignored submodule' ' git config -f .gitmodules --remove-section submodule.subname ' +test_expect_success 'No commits yet should be noted in status output' ' + git init initial && + cd initial && + git status >output && + test_i18ngrep "No commits yet" output && + test_commit initial && + git status >output && + test_i18ngrep ! "No commits yet" output && + test_i18ngrep "nothing.*to commit" output +' + test_done diff --git a/wt-status.c b/wt-status.c index 7991fd1098..f324ea20a6 100644 --- a/wt-status.c +++ b/wt-status.c @@ -1582,7 +1582,7 @@ static void wt_longstatus_print(struct wt_status *s) status_printf_ln(s, color(WT_STATUS_HEADER, s), s->commit_template ? _("Initial commit") - : _("No commits yet on the branch")); + : _("No commits yet")); status_printf_ln(s, color(WT_STATUS_HEADER, s), "%s", ""); } > status_printf_ln(s, color(WT_STATUS_HEADER, s), "%s", ""); > } > > diff --git a/wt-status.h b/wt-status.h > index 6018c627b..782b2997f 100644 > --- a/wt-status.h > +++ b/wt-status.h > @@ -76,6 +76,7 @@ struct wt_status { > char color_palette[WT_STATUS_MAXSLOT][COLOR_MAXLEN]; > unsigned colopts; > int null_termination; > + int commit_template; > int show_branch; > int hints;