From: Johannes Schindelin Date: Wed, 06 Jan 2021 22:40:55 GMT Subject: Re: Git Feature Request (Fixdown in interactive rebase) Message-ID: In-Reply-To: <7b5ad849-ca6c-a462-fdef-c06f8511d946@kdbg.org> Hi, On Thu, 24 Dec 2020, Johannes Sixt wrote: > 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 squash exec git commit --amend -C 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