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

Re: Fwd: Discovering the new parents in commit hooks

From
brian m. carlson <sandals@crustytoothpaste.net>
Date
Jul 8, 2019, 20:09 UTC
Message-ID
<20190708200906.GF9224@genre.crustytoothpaste.net>
In-Reply-To
<CAOqHT5K_JZDZ1agEL4ceVdYY=4YYO715v+j_bNbJWOoV=KNqQQ@mail.gmail.com>
On 2019-07-05 at 22:01:59, scott douglass wrote:
Show 7 quoted lines
> Hi,
> 
> I’d like to be able to discover the new parents-to-be SHA-1s during
> the hooks that run before a commit*.  Essentially I’d like be able to
> distinguish the ‘git commit’ case from ‘git commit —amend’. Is there
> already a way to do this that I have overlooked? (I’ve read ‘man
> githooks’ and searched the wiki and various other places.)

I'm not aware of a way to distinguish this currently, although I agree having a way would be valuable. There are of course heuristic ways, but they can be fooled.

Show 5 quoted lines
> If not, I would propose that perhaps the hooks could be passed a
> GIT_PARENTS (or perhaps GIT_NEW_PARENTS) environment variable which in
> the ‘not amend’ case would contain the SHA-1 for HEAD and MERGE_HEAD
> (if appropriate) and in the ‘—amend' case would contain HEAD^@ (all of
> the parents of HEAD).

I think we'd probably skip such functionality in favor of exposing whether a commit is to be amended or not and let you script the parents yourself.

There are a lot of cases where one might want to know whether a commit was amended, but knowing that, you can determine the parents and anything else without much difficulty, so the amended option seems like the more general feature to implement.

-- 
brian m. carlson: Houston, Texas, US
OpenPGP: https://keybase.io/bk2204
Previous: scott douglass
Message 2 of 2 in “Fwd: Discovering the new parents in commit hooks”
  1. scott douglassJul 5, 2019
  2. brian m. carlsonJul 8, 2019

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.