]> git.ipfire.org Git - thirdparty/git.git/commitdiff
t3900: demonstrate git-rebase problem with multi encoding
authorDoan Tran Cong Danh <congdanhqx@gmail.com>
Fri, 8 Nov 2019 09:43:45 +0000 (16:43 +0700)
committerJunio C Hamano <gitster@pobox.com>
Mon, 11 Nov 2019 00:43:47 +0000 (09:43 +0900)
We're using fixup!/squash! <subject> to mark if current commit will be
used to be fixed up or squashed to a previous commit.

However, if we're changing i18n.commitencoding after making the
original commit but before making the fixing up, we couldn't find the
original commit to do the fixup/squash.

Add a test to demonstrate that problem.

Helped-by: Jeff King <peff@peff.net>
Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3900-i18n-commit.sh

index b92ff95977281e7ebb727fe5079e03aa301f4111..dd56384b93ab8635337a3eaa39d57c889acca7f2 100755 (executable)
@@ -204,4 +204,33 @@ test_commit_autosquash_flags eucJP fixup
 
 test_commit_autosquash_flags ISO-2022-JP squash
 
+test_commit_autosquash_multi_encoding () {
+       flag=$1
+       old=$2
+       new=$3
+       msg=$4
+       test_expect_failure "commit --$flag into $old from $new" '
+               git checkout -b $flag-$old-$new C0 &&
+               git config i18n.commitencoding $old &&
+               echo $old >>F &&
+               git commit -a -F "$TEST_DIRECTORY"/t3900/$msg &&
+               test_tick &&
+               echo intermediate stuff >>G &&
+               git add G &&
+               git commit -a -m "intermediate commit" &&
+               test_tick &&
+               git config i18n.commitencoding $new &&
+               echo $new-$flag >>F &&
+               git commit -a --$flag HEAD^ &&
+               git rebase --autosquash -i HEAD^^^ &&
+               git rev-list HEAD >actual &&
+               test_line_count = 3 actual
+       '
+}
+
+test_commit_autosquash_multi_encoding fixup UTF-8 ISO-8859-1 1-UTF-8.txt
+test_commit_autosquash_multi_encoding squash ISO-8859-1 UTF-8 ISO8859-1.txt
+test_commit_autosquash_multi_encoding squash eucJP ISO-2022-JP eucJP.txt
+test_commit_autosquash_multi_encoding fixup ISO-2022-JP UTF-8 ISO-2022-JP.txt
+
 test_done