Skip to content

Commit

Permalink
t3900: demonstrate git-rebase problem with multi encoding
Browse files Browse the repository at this point in the history
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>
  • Loading branch information
sgn authored and gitster committed Nov 11, 2019
1 parent 1ba6e7a commit e4b95b3
Showing 1 changed file with 29 additions and 0 deletions.
29 changes: 29 additions & 0 deletions t/t3900-i18n-commit.sh
Original file line number Diff line number Diff line change
Expand Up @@ -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

0 comments on commit e4b95b3

Please sign in to comment.