mirror of
https://github.com/git/git.git
synced 2024-11-24 10:26:17 +08:00
t3900: demonstrate git-rebase problem with multi encoding
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>
This commit is contained in:
parent
1ba6e7aecd
commit
e4b95b3b5f
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user