]> git.ipfire.org Git - thirdparty/git.git/commit - sequencer.h
rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Fri, 27 Apr 2018 20:48:21 +0000 (22:48 +0200)
committerJunio C Hamano <gitster@pobox.com>
Tue, 1 May 2018 22:47:47 +0000 (07:47 +0900)
commite12a7ef5972423c822834f9c514a54e32ea99e65
tree21e9985f4fe9a39bde40cc8acf12b810c562932c
parentd5bc6f292ab0a1715ff021f5854ac5a81c2b88b0
rebase -i: Handle "combination of <n> commits" with GETTEXT_POISON

We previously relied on the localized versions of

# This is a combination of <N> commits

(which we write into the commit messages during fixup/squash chains)
to contain <N> encoded in ASCII.

This is not true in general, and certainly not true when compiled with
GETTEXT_POISON=TryToKillMe, as demonstrated by the regression test we
just introduced in t3418.

So let's decouple keeping track of the count from the (localized) commit
messages by introducing a new file called 'current-fixups' that keeps
track of the current fixup/squash chain. This file contains a bit more
than just the count (it contains a list of "fixup <commit>"/"squash
<commit>" lines). This is done on purpose, as it will come in handy for
a fix for the bug where `git rebase --skip` on a final fixup/squash will
leave the commit message in limbo.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
sequencer.c
sequencer.h