Re: Git Feature Request (Fixdown in interactive rebase)
- From
Johannes Schindelin <johannes.schindelin@gmx.de>
- Date
- Jan 6, 2021, 22:40 UTC
- Message-ID
- <nycvar.QRO.7.76.6.2101062336350.2213@tvgsbejvaqbjf.bet>
- In-Reply-To
- <7b5ad849-ca6c-a462-fdef-c06f8511d946@kdbg.org>
Hi,
On Thu, 24 Dec 2020, Johannes Sixt wrote:
Show 15 quoted lines
> Am 24.12.20 um 23:21 schrieb Junio C Hamano: > > I wonder if we deliberately designed how each insn you can write in > > the todo list should come up with the authorship data (i.e. ident > > and timestamp), or if we are just using the natural consequence of > > how the implementation happens to work? I think it makes sense for > > "fixup", as an instruction used to make a small tweak to the bulk of > > work you've done some time ago, to use the authorship information of > > the original commit that gets fixed up. I don't know offhand what > > other insns like "edit", "reword", etc. do, and if there is a room > > to improve them. > > For 'squash' it was a deliberate decision to keep authorship of the > first commit, see 81ab1cb43a87. Initially, 'edit' changed authorship > including the date to the current author and date; that was changed to > preserve them, but I cannot find the responsible commit.
Note that a new verb is not even necessary, thanks to the `exec` verb: Something like this:
pick <moved-here> squash <use-this-commits-message> exec git commit --amend -C <use-this-commits-message>
As to the implementation of a hypothetical `fixdown`? It would be a bit hairy, I think: right now, we rely on the fact that we can find the target of every fixup!/squash! in the already-parsed todo list. If we do not find it there, the fixup!/squash! simply won't be auto-squashed. The desired feature, however, would have to look in the opposite direction. I'd rather avoid that complexity.
Ciao, Johannes