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