Skip to content

Commit

Permalink
status: suggest "git rm --cached" to unstage for initial commit
Browse files Browse the repository at this point in the history
It makes no sense to suggest "git reset HEAD" since we have
no HEAD commit. This actually used to work but regressed in
f26a001.

wt_status_print_cached_header was updated to take the whole
wt_status struct rather than just the reference field.
Previously the various code paths were sometimes sending in
s->reference and sometimes sending in NULL, making the
decision on whether this was an initial commit before we
even got to this function. Now we must check the initial
flag here.

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
  • Loading branch information
Jeff King authored and Junio C Hamano committed Feb 13, 2008
1 parent 077b725 commit ff58b9a
Show file tree
Hide file tree
Showing 2 changed files with 11 additions and 2 deletions.
11 changes: 10 additions & 1 deletion t/t7502-status.sh
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,9 @@ test_expect_success 'setup' '
: > dir1/tracked &&
: > dir1/modified &&
git add . &&
git status >output &&
test_tick &&
git commit -m initial &&
: > untracked &&
Expand All @@ -28,6 +31,12 @@ test_expect_success 'setup' '
git add dir2/added
'

test_expect_success 'status (1)' '
grep -e "use \"git rm --cached <file>\.\.\.\" to unstage" output
'

cat > expect << \EOF
# On branch master
# Changes to be committed:
Expand All @@ -51,7 +60,7 @@ cat > expect << \EOF
# untracked
EOF

test_expect_success 'status' '
test_expect_success 'status (2)' '
git status > output &&
git diff expect output
Expand Down
2 changes: 1 addition & 1 deletion wt-status.c
Original file line number Diff line number Diff line change
Expand Up @@ -60,7 +60,7 @@ static void wt_status_print_cached_header(struct wt_status *s)
{
const char *c = color(WT_STATUS_HEADER);
color_fprintf_ln(s->fp, c, "# Changes to be committed:");
if (s->reference) {
if (!s->is_initial) {
color_fprintf_ln(s->fp, c, "# (use \"git reset %s <file>...\" to unstage)", s->reference);
} else {
color_fprintf_ln(s->fp, c, "# (use \"git rm --cached <file>...\" to unstage)");
Expand Down

0 comments on commit ff58b9a

Please sign in to comment.