git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: --reset-author does not reset author date when used in post-commit hook

From
DDDevste Devste <devstemail@gmail.com>
Date
Apr 2, 2025, 10:06 UTC
Message-ID
<CANM0SV27g_37kLfgKu8GVg13mViQ78+DRwdjSf4mGrkNdndPLg@mail.gmail.com>
In-Reply-To
<Z-xvfqCsQnDIGaXx@tapette.crustytoothpaste.net>
>My testing demonstrates that `commit-msg` is skipped with `--no-edit
--no-verify`, but not `prepare-commit-msg`.

Looks like a separate bug though? https://git-scm.com/docs/git-commit#Documentation/git-commit.txt-code--no-editcode says:

>Use the selected commit message without launching an editor. For example, git commit --amend --no-edit amends a commit without changing its commit message.
Why would the prepare-commit-msg hook be called then?
>What I could recommend instead is setting a shell script or PowerShell

file or such as the default Git binary (instead of git.exe) and setting `TZ=UTC0` in that script (possibly only if the command is `commit` or `commit-tree`).

The IDEs only work with git.exe. If it's not there, it won't run at all. The only thing possible is setting TZ= as a user environment variable however that will obviously be picked up by other applications and cause the weirdest side-effects (e.g. Slack/Electron suddenly start using that time zone for some things but the in-built/setting timezone for others and lots of other inconsistency issues in tons of applications) There's various tickets for various IDEs for this use case, not just for git, but also for npm and various other tools (e.g. people need to change the JAVA version for a tool or whatever)

Some time ago I opened "Config timezone to prevent chaos when DST/changing timezone" in the git mailing list and I saw you also replied. But if git had a way to actually set the timezone, these workarounds wouldn't be necessary; alas that's another issue

On Wed, 2 Apr 2025 at 00:58, brian m. carlson <sandals@crustytoothpaste.net> wrote:

Show 37 quoted lines
>
> On 2025-04-01 at 03:44:17, Devste Devste wrote:
> > >your call to `git commit` will still invoke the
> > `prepare-commit-msg` (and possibly `commit-msg`) hook
> >
> > Since I used --no-edit --no-verify in the example/hook, that shouldn't
> > be the case though?
>
> My testing demonstrates that `commit-msg` is skipped with `--no-edit
> --no-verify`, but not `prepare-commit-msg`.
>
> > >such as by using an alias that sets `TZ=UTC0` to commit.
> >
> > Unfortunately, (at least on Windows) most tools and IDEs don't even
> > load a bashrc file (e.g. intellij) for their git UI, so that's not an
> > option (and setting the TZ as a global environment variable has
> > unwanted side effects, since it will set the timezone in various
> > applications randomly, e.g. Electron/Slack will use the TZ for some
> > but not for other things,...)
>
> What I could recommend instead is setting a shell script or PowerShell
> file or such as the default Git binary (instead of git.exe) and setting
> `TZ=UTC0` in that script (possibly only if the command is `commit` or
> `commit-tree`).  I use Neovim with the fugitive extension, and
> it provides functionality to override the Git executable, so I suspect
> other editors will as well.  This is something that will likely be
> robust and unlikely to break.
>
> The reason I make that recommendation is that I suspect you're going to
> find that there are other infelicities or weird edge cases in what
> you're doing and this would be a use case that I could see getting
> broken accidentally.  We've accidentally broken people doing `git add`
> in `pre-commit` hooks (which we also don't recommend) in the past, for
> instance.
> --
> brian m. carlson (they/them)
> Toronto, Ontario, CA
Previous: brian m. carlson
Message 5 of 5 in “--reset-author does not reset author date when used in post-commit hook”
  1. Devste DevsteMar 31, 2025
  2. brian m. carlsonApr 1, 2025
  3. Devste DevsteApr 1, 2025
  4. brian m. carlsonApr 1, 2025
  5. Devste DevsteApr 2, 2025

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.