]> granicus.if.org Git - git/commitdiff
commit: disable status hints when writing to COMMIT_EDITMSG
authorMatthieu Moy <Matthieu.Moy@imag.fr>
Thu, 12 Sep 2013 10:50:06 +0000 (12:50 +0200)
committerJunio C Hamano <gitster@pobox.com>
Thu, 12 Sep 2013 18:45:41 +0000 (11:45 -0700)
This turns the template COMMIT_EDITMSG from e.g

  # [...]
  # Changes to be committed:
  #   (use "git reset HEAD <file>..." to unstage)
  #
  # modified:   builtin/commit.c
  #
  # Untracked files:
  #   (use "git add <file>..." to include in what will be committed)
  #
  # t/foo
  #

to

  # [...]
  # Changes to be committed:
  # modified:   builtin/commit.c
  #
  # Untracked files:
  # t/foo
  #

Most status hints were written to be accurate when running "git status"
before running a commit. Many of them are not applicable when the commit
has already been started, and should not be shown in COMMIT_EDITMSG. The
most obvious are hints advising to run "git commit",
"git rebase/am/cherry-pick --continue", which do not make sense when the
command has already been run.

Other messages become slightly inaccurate (e.g. hint to use "git add" to
add untracked files), as the suggested commands are not immediately
applicable during the editing of COMMIT_EDITMSG, but would be applicable
if the commit is aborted. These messages are both potentially helpful and
slightly misleading. This patch chose to remove them too, to avoid
introducing too much complexity in the status code.

Signed-off-by: Matthieu Moy <Matthieu.Moy@imag.fr>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/commit.c

index 28c6309d46a9135022ded5c6f230e971774c3415..321462a435d2fa2b22d4fb59decbe7e39d1f7084 100644 (file)
@@ -705,6 +705,12 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
        if (s->fp == NULL)
                die_errno(_("could not open '%s'"), git_path(commit_editmsg));
 
+       /*
+        * Most hints are counter-productive when the commit has
+        * already started.
+        */
+       s->hints = 0;
+
        if (clean_message_contents)
                stripspace(&sb, 0);