summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2017-06-30 20:45:22 (GMT)
committerJunio C Hamano <gitster@pobox.com>2017-06-30 20:45:22 (GMT)
commit7e46f19a105f3798b03ac3887f45034fbfdff676 (patch)
treef258b34d49b1e01d41e6de033e091335359cb9a8
parentc7ee0baae7e874898032ab0c63600951eb7c2d18 (diff)
parent4ddb1354e8d5daf5671d3d451a67d2d1e82d9b49 (diff)
downloadgit-7e46f19a105f3798b03ac3887f45034fbfdff676.zip
git-7e46f19a105f3798b03ac3887f45034fbfdff676.tar.gz
git-7e46f19a105f3798b03ac3887f45034fbfdff676.tar.bz2
Merge branch 'ks/status-initial-commit'
"git status" has long shown essentially the same message as "git commit"; the message it gives while preparing for the root commit, i.e. "Initial commit", was hard to understand for some new users. Now it says "No commits yet" to stress more on the current status (rather than the commit the user is preparing for, which is more in line with the focus of "git commit"). * ks/status-initial-commit: status: contextually notify user about an initial commit
-rw-r--r--builtin/commit.c1
-rwxr-xr-xt/t7501-commit.sh2
-rwxr-xr-xt/t7508-status.sh30
-rw-r--r--wt-status.c7
-rw-r--r--wt-status.h1
5 files changed, 38 insertions, 3 deletions
diff --git a/builtin/commit.c b/builtin/commit.c
index 00a01f0..03b97c6 100644
--- a/builtin/commit.c
+++ b/builtin/commit.c
@@ -1660,6 +1660,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/t/t7501-commit.sh b/t/t7501-commit.sh
index 0b6da7a..fa61b1a 100755
--- a/t/t7501-commit.sh
+++ b/t/t7501-commit.sh
@@ -18,7 +18,7 @@ test_expect_success 'initial status' '
echo bongo bongo >file &&
git add file &&
git status >actual &&
- test_i18ngrep "Initial commit" actual
+ test_i18ngrep "No commits yet" actual
'
test_expect_success 'fail initial amend' '
diff --git a/t/t7508-status.sh b/t/t7508-status.sh
index f7fe22a..43d19a9 100755
--- a/t/t7508-status.sh
+++ b/t/t7508-status.sh
@@ -1640,4 +1640,34 @@ test_expect_success 'no additionnal info if no stash entries' '
test_cmp expected_without_stash actual
'
+test_expect_success '"No commits yet" should be noted in status output' '
+ git checkout --orphan empty-branch-1 &&
+ git status >output &&
+ test_i18ngrep "No commits yet" output
+'
+
+test_expect_success '"No commits yet" should not be noted in status output' '
+ git checkout --orphan empty-branch-2 &&
+ test_commit test-commit-1 &&
+ git status >output &&
+ test_i18ngrep ! "No commits yet" output
+'
+
+test_expect_success '"Initial commit" should be noted in commit template' '
+ git checkout --orphan empty-branch-3 &&
+ touch to_be_committed_1 &&
+ git add to_be_committed_1 &&
+ git commit --dry-run >output &&
+ test_i18ngrep "Initial commit" output
+'
+
+test_expect_success '"Initial commit" should not be noted in commit template' '
+ git checkout --orphan empty-branch-4 &&
+ test_commit test-commit-2 &&
+ touch to_be_committed_2 &&
+ git add to_be_committed_2 &&
+ git commit --dry-run >output &&
+ test_i18ngrep ! "Initial commit" output
+'
+
test_done
diff --git a/wt-status.c b/wt-status.c
index 7992a73..8d2fb35 100644
--- a/wt-status.c
+++ b/wt-status.c
@@ -1601,7 +1601,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"));
status_printf_ln(s, color(WT_STATUS_HEADER, s), "%s", "");
}
@@ -1773,7 +1776,7 @@ static void wt_shortstatus_print_tracking(struct wt_status *s)
#define LABEL(string) (s->no_gettext ? (string) : _(string))
if (s->is_initial)
- color_fprintf(s->fp, header_color, LABEL(N_("Initial commit on ")));
+ color_fprintf(s->fp, header_color, LABEL(N_("No commits yet on ")));
if (!strcmp(s->branch, "HEAD")) {
color_fprintf(s->fp, color(WT_STATUS_NOBRANCH, s), "%s",
diff --git a/wt-status.h b/wt-status.h
index d8ae2e5..64f4d33 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 show_stash;
int hints;