From: Emily Shaffer <emilyshaffer@google.com>
To: Junio C Hamano <gitster@pobox.com>
Cc: Heba Waly via GitGitGadget <gitgitgadget@gmail.com>,
git@vger.kernel.org, Heba Waly <heba.waly@gmail.com>
Subject: Re: [PATCH v2 1/1] commit: display advice hints when commit fails
Date: Thu, 19 Dec 2019 18:31:25 -0800 [thread overview]
Message-ID: <20191220023125.GD227872@google.com> (raw)
In-Reply-To: <xmqqbls4aznl.fsf@gitster-ct.c.googlers.com>
On Thu, Dec 19, 2019 at 11:22:38AM -0800, Junio C Hamano wrote:
> Junio C Hamano <gitster@pobox.com> writes:
>
> > This fix was about "we do not want to unconditionally drop the
> > advice messages when we reject the attempt to commit and show the
> > output like 'git status'", wasn't it? The earlier single-liner fix
> > in v1 that flips s->hints just before calling run_status() before
> > rejecting the attempt to commit was a lot easier to reason about, as
> > the fix was very focused and to the point. Why are we seeing this
> > many (seemingly unrelated) changes?
>
> In any case, here is what I tentatively have in my tree (with heavy
> rewrite to the proposed log message).
Hm. I'm surprised to see this feedback come in the form of a local
change when making the topic branch, rather than in a reply to the v1
patch. What's the reasoning? (Or is this scissors patch intended to be
the feedback?)
I ask because out of all of us, it seems the Outreachy interns can
benefit the most from advice on how and why to write their commit
messages - that is, part of the point of an internship is to learn best
practices and cultural norms in addition to coding practice. (Plus, I
find being asked to rewrite a commit message tends to force me to
understand my own change even better than before.)
I'll go ahead and look through the changes to the commit message so I
can learn what you're looking for too :)
>
> -- >8 --
> From: Heba Waly <heba.waly@gmail.com>
> Date: Tue, 17 Dec 2019 09:17:22 +0000
> Subject: [PATCH] commit: honor advice.statusHints when rejecting an empty
> commit
>
> In ea9882bfc4 (commit: disable status hints when writing to
> COMMIT_EDITMSG, 2013-09-12) the intent was to disable status hints
> when writing to COMMIT_EDITMSG, because giving the hints in the "git
> status" like output in the commit message template are too late to
> be useful (they say things like "'git add' to stage", but that is
> only possible after aborting the current "git commit" session).
More context on why the previous change was made - "by the time the
editor was open, it was too late to apply hints anyways". Sure.
>
> But there is one case that the hints can be useful: When the current
> attempt to commit is rejected because no change is recorded in the
> index. The message is given and "git commit" errors out, so the
> hints can immediately be followed by the user. Teach the codepath
> to honor the configuration variable.
Expanding the "but" to supply the specific story this commit touches,
including "what happens instead" and "how are we gonna fix it".
And the copy-paste of the output before and the output now is different.
For me, I don't particularly see why we'd want to be rid of it - it sort
of feels like "a picture is worth a thousand words" to include the
actual use case in the commit message. Is there style guidance
suggesting not to do that that I missed?
- Emily
>
> Signed-off-by: Heba Waly <heba.waly@gmail.com>
> Signed-off-by: Junio C Hamano <gitster@pobox.com>
> ---
> builtin/commit.c | 1 +
> t/t7500-commit-template-squash-signoff.sh | 9 +++++++++
> 2 files changed, 10 insertions(+)
>
> diff --git a/builtin/commit.c b/builtin/commit.c
> index e588bc6ad3..0078faf117 100644
> --- a/builtin/commit.c
> +++ b/builtin/commit.c
> @@ -944,6 +944,7 @@ static int prepare_to_commit(const char *index_file, const char *prefix,
> */
> if (!committable && whence != FROM_MERGE && !allow_empty &&
> !(amend && is_a_merge(current_head))) {
> + s->hints = advice_status_hints;
> s->display_comment_prefix = old_display_comment_prefix;
> run_status(stdout, index_file, prefix, 0, s);
> if (amend)
> diff --git a/t/t7500-commit-template-squash-signoff.sh b/t/t7500-commit-template-squash-signoff.sh
> index 46a5cd4b73..a8179e4074 100755
> --- a/t/t7500-commit-template-squash-signoff.sh
> +++ b/t/t7500-commit-template-squash-signoff.sh
> @@ -382,4 +382,13 @@ test_expect_success 'check commit with unstaged rename and copy' '
> )
> '
>
> +test_expect_success 'commit without staging files fails and displays hints' '
> + echo "initial" >>file &&
> + git add file &&
> + git commit -m initial &&
> + echo "changes" >>file &&
> + test_must_fail git commit -m update >actual &&
> + test_i18ngrep "no changes added to commit (use \"git add\" and/or \"git commit -a\")" actual
> +'
> +
> test_done
> --
> 2.24.1-732-ga9f9d4909c
>
next prev parent reply other threads:[~2019-12-20 2:31 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-17 9:17 [PATCH 0/1] [Outreachy] commit: display advice hints when commit fails Heba Waly via GitGitGadget
2019-12-17 9:17 ` [PATCH 1/1] " Heba Waly via GitGitGadget
2019-12-17 22:41 ` Junio C Hamano
2019-12-17 22:45 ` Emily Shaffer
2019-12-19 3:47 ` Heba Waly
2019-12-18 3:13 ` Jonathan Tan
2019-12-18 18:14 ` Junio C Hamano
2019-12-19 3:48 ` Heba Waly
2019-12-19 9:16 ` [PATCH v2 0/1] [Outreachy] " Heba Waly via GitGitGadget
2019-12-19 9:16 ` [PATCH v2 1/1] " Heba Waly via GitGitGadget
2019-12-19 19:14 ` Junio C Hamano
2019-12-19 19:22 ` Junio C Hamano
2019-12-19 19:47 ` Eric Sunshine
2019-12-19 19:57 ` Junio C Hamano
2019-12-20 2:31 ` Emily Shaffer [this message]
2019-12-20 18:34 ` Junio C Hamano
2019-12-20 21:39 ` Emily Shaffer
2019-12-31 0:04 ` Jonathan Tan
2019-12-31 19:06 ` Junio C Hamano
2020-01-02 19:56 ` Jonathan Tan
2019-12-19 18:26 ` [PATCH v2 0/1] [Outreachy] " Junio C Hamano
2019-12-19 18:54 ` Emily Shaffer
2019-12-19 19:23 ` Junio C Hamano
2019-12-19 19:45 ` Junio C Hamano
2019-12-21 4:37 ` Heba Waly
2019-12-21 23:54 ` Junio C Hamano
2019-12-21 5:02 ` Heba Waly
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20191220023125.GD227872@google.com \
--to=emilyshaffer@google.com \
--cc=git@vger.kernel.org \
--cc=gitgitgadget@gmail.com \
--cc=gitster@pobox.com \
--cc=heba.waly@gmail.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.