Re: [PATCH] rebase --autosquash: fix a potential segfault
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- May 18, 2020, 03:27 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2005180522230.55@tvgsbejvaqbjf.bet>
- In-Reply-To
- <fc616e86-dfc1-fccf-d22b-ad2aee0d1b16@iee.email>
Hi Philip,
On Mon, 18 May 2020, Philip Oakley wrote:
Show 20 quoted lines
> On 08/05/2020 17:57, Andrei Rybak wrote: > > On 2020-05-08 18:43, Philip Oakley wrote: > >> On 07/05/2020 15:27, Johannes Schindelin wrote: > >> Is this ability to have a commit message `fixup! <commit-hash>` documented? > >> I've looked a few times in the past and didn't find it. The docs for > >> `git commit --fixup=` doesn't put the oid in the commit's subject line, > >> rather it puts the subject of the referent commit after the "fixup! ". > >> > >> Searching from a different direction I've just seen it is mentioned in > >> the v1.7.4 release notes. > >> > >> Would a doc fix to clarify this be appropriate or have I missed something? > >> > >> Philip > > Yes, it's documented in description of --autosquash: "A commit matches the `...` > > if the commit subject matches, or if the `...` refers to the commit's hash." > > The docs don't clarify if a full oid has is required, or a unique > abbreviation within the repository, or just unique within the rebase > instruction sheet.
It's even worse: _any_ valid reference will do. As you can see from https://github.com/git/git/blob/efcab5b7a3d2/sequencer.c#L5359-L5381, the search goes like this:
- For the remainder of the `fixup! <remainder>` line:
1. If it is identical to the oneline of any commit mentioned in a previously-seen `pick` line, pick that as target.
2. Otherwise, if the remainder can be looked up as a commit (think: `fixup! master~3`) _and_ that commit was mentioned in a previously-seen `pick` line, pick that as target.
3. If all else fails, and if the remainder is the _start_ of a oneline of a commit previously seen in a `pick` line, pick that as target (if multiple lines match, use the first one).
Do feel free to put that into a native-speaker form of a patch to improve the documentation.
Ciao, Dscho