You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
84 lines
2.2 KiB
84 lines
2.2 KiB
#!/bin/sh |
|
# |
|
# Copyright (c) 2019 Doan Tran Cong Danh |
|
# |
|
|
|
test_description='rebase with changing encoding |
|
|
|
Initial setup: |
|
|
|
1 - 2 master |
|
\ |
|
3 - 4 first |
|
\ |
|
5 - 6 second |
|
' |
|
|
|
. ./test-lib.sh |
|
|
|
compare_msg () { |
|
iconv -f "$2" -t "$3" "$TEST_DIRECTORY/t3434/$1" >expect && |
|
git cat-file commit HEAD >raw && |
|
sed "1,/^$/d" raw >actual && |
|
test_cmp expect actual |
|
} |
|
|
|
test_expect_success setup ' |
|
test_commit one && |
|
git branch first && |
|
test_commit two && |
|
git switch first && |
|
test_commit three && |
|
git branch second && |
|
test_commit four && |
|
git switch second && |
|
test_commit five && |
|
test_commit six |
|
' |
|
|
|
test_expect_success 'rebase --rebase-merges update encoding eucJP to UTF-8' ' |
|
git switch -c merge-eucJP-UTF-8 first && |
|
git config i18n.commitencoding eucJP && |
|
git merge -F "$TEST_DIRECTORY/t3434/eucJP.txt" second && |
|
git config i18n.commitencoding UTF-8 && |
|
git rebase --rebase-merges master && |
|
compare_msg eucJP.txt eucJP UTF-8 |
|
' |
|
|
|
test_expect_success 'rebase --rebase-merges update encoding eucJP to ISO-2022-JP' ' |
|
git switch -c merge-eucJP-ISO-2022-JP first && |
|
git config i18n.commitencoding eucJP && |
|
git merge -F "$TEST_DIRECTORY/t3434/eucJP.txt" second && |
|
git config i18n.commitencoding ISO-2022-JP && |
|
git rebase --rebase-merges master && |
|
compare_msg eucJP.txt eucJP ISO-2022-JP |
|
' |
|
|
|
test_rebase_continue_update_encode () { |
|
old=$1 |
|
new=$2 |
|
msgfile=$3 |
|
test_expect_success "rebase --continue update from $old to $new" ' |
|
(git rebase --abort || : abort current git-rebase failure) && |
|
git switch -c conflict-$old-$new one && |
|
echo for-conflict >two.t && |
|
git add two.t && |
|
git config i18n.commitencoding $old && |
|
git commit -F "$TEST_DIRECTORY/t3434/$msgfile" && |
|
git config i18n.commitencoding $new && |
|
test_must_fail git rebase -m master && |
|
test -f .git/rebase-merge/message && |
|
git stripspace <.git/rebase-merge/message >two.t && |
|
git add two.t && |
|
git rebase --continue && |
|
compare_msg $msgfile $old $new && |
|
: git-commit assume invalid utf-8 is latin1 && |
|
test_cmp expect two.t |
|
' |
|
} |
|
|
|
test_rebase_continue_update_encode ISO-8859-1 UTF-8 ISO8859-1.txt |
|
test_rebase_continue_update_encode eucJP UTF-8 eucJP.txt |
|
test_rebase_continue_update_encode eucJP ISO-2022-JP eucJP.txt |
|
|
|
test_done
|
|
|