From: Jim Porter <jporterbugs@gmail.com>
To: Eli Zaretskii <eliz@gnu.org>
Cc: acm@muc.de, emacs-devel@gnu.org
Subject: Re: Mistakes in commit log messages
Date: Tue, 11 Apr 2023 12:27:40 -0700 [thread overview]
Message-ID: <eb74be24-eb1d-cbc9-6909-9634b88a7028@gmail.com> (raw)
In-Reply-To: <834jpm9s1g.fsf@gnu.org>
On 4/11/2023 11:45 AM, Eli Zaretskii wrote:
>> Date: Tue, 11 Apr 2023 11:31:55 -0700
>> Cc: emacs-devel@gnu.org
>> From: Jim Porter <jporterbugs@gmail.com>
>>
>> Finally, I think it would make sense to have this be a purely advisory
>> warning for now so that we could check it into the Emacs tree soon-ish.
>
> How will this help, given that some people use Magit to commit and
> some use VC, not the Git commands from the shell? Are we sure the
> warnings will be seen, let alone acted upon?
I don't know. If VC and Magit don't show messages from Git hooks, they
probably should. Those messages are there for a reason, after all.
However, warnings that only some users see would hopefully still help us
get feedback on whether the validation works properly.
Some miscellaneous thoughts on this:
One issue with the current implementation (mentioned elsewhere in this
thread) is that it doesn't work for deleting a file from the repo.
Fixing this in the commit-msg hook is tricky. We can get the list of
changed files via "git diff --name-only" (and then we could compare our
commit message against that list), but there's a problem: I don't know
of a good way to detect when the user is amending a commit[1]. For a
normal commit, you'd get the changed files via something like "git diff
--staged --name-only", but for an amended commit, you'd want to add
"HEAD^" to that command.
Another option might be to do this as a pre-push hook. By then, the
commits are finalized, so we can more easily compare the commit message
and its diff. This is also nice because when the commit-msg hook errors
out, it throws away the commit message; quite annoying if you just made
a small typo! However, it does mean that committers would need to be
comfortable with amending their commit messages if they hit this error.
(We could also check this in a post-commit hook so that committers are
alerted *before* they try to push, but post-commit hooks can't abort the
commit: it's already done! Maybe we could have a post-commit hook that
warns the committer, and a pre-push hook that actually errors out.)
[1] The only way I've seen to do this is to look at the arguments from
the parent (Git) process that called the hook:
<https://stackoverflow.com/questions/19387073/how-to-detect-commit-amend-by-pre-commit-hook>.
I'm not sure how reliably that works, especially on platforms like
MS-Windows...
next prev parent reply other threads:[~2023-04-11 19:27 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <835ya5m4p0.fsf@gnu.org>
[not found] ` <ZDPkykCsW3i30UR9@ACM>
[not found] ` <83v8i4arzt.fsf@gnu.org>
[not found] ` <CANh=_JF0CEPDsWZSuyy9ymByma2LxcypP90O3-LQ+KhoJ8cqvg@mail.gmail.com>
[not found] ` <CANh=_JEO4-E79dPCLc3cRLi7=ftAzc+H1FC46eck1vJN3TD3Sg@mail.gmail.com>
2023-04-11 6:02 ` Mistakes in commit log messages Eli Zaretskii
2023-04-11 14:01 ` Alan Mackenzie
2023-04-11 14:57 ` Eli Zaretskii
2023-04-11 17:20 ` Alan Mackenzie
2023-04-11 18:00 ` Eli Zaretskii
2023-04-11 18:31 ` Jim Porter
2023-04-11 18:45 ` Eli Zaretskii
2023-04-11 19:27 ` Jim Porter [this message]
2023-04-11 19:36 ` Eli Zaretskii
2023-04-12 0:20 ` Jim Porter
2023-04-13 6:18 ` Jim Porter
2023-04-13 6:49 ` Eli Zaretskii
2023-04-13 7:47 ` Robert Pluim
2023-04-15 3:41 ` Jim Porter
2023-04-15 5:45 ` Jim Porter
2023-04-15 7:15 ` Eli Zaretskii
2023-04-15 10:44 ` Alan Mackenzie
2023-04-15 11:00 ` Eli Zaretskii
2023-04-21 22:16 ` Filipp Gunbin
2023-04-15 20:54 ` Jim Porter
2023-04-15 21:23 ` Jim Porter
2023-04-16 5:43 ` Eli Zaretskii
2023-04-16 20:06 ` Jim Porter
2023-04-16 20:19 ` Michael Albinus
2023-04-17 2:22 ` Eli Zaretskii
2023-04-17 7:28 ` Michael Albinus
2023-04-21 4:59 ` Jim Porter
2023-04-15 7:08 ` Eli Zaretskii
2023-04-12 9:41 ` Alan Mackenzie
2023-04-12 10:14 ` Eli Zaretskii
2023-04-12 9:32 ` Alan Mackenzie
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=eb74be24-eb1d-cbc9-6909-9634b88a7028@gmail.com \
--to=jporterbugs@gmail.com \
--cc=acm@muc.de \
--cc=eliz@gnu.org \
--cc=emacs-devel@gnu.org \
/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.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
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.