зеркало из https://github.com/microsoft/git.git
sequencer: reencode commit message for am/rebase --show-current-patch
The message file will be used as commit message for the git-{am,rebase} --continue. Signed-off-by: Doan Tran Cong Danh <congdanhqx@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Родитель
5772b0c745
Коммит
52f52e5ae4
|
@ -2972,7 +2972,8 @@ static int make_patch(struct repository *r,
|
||||||
|
|
||||||
strbuf_addf(&buf, "%s/message", get_dir(opts));
|
strbuf_addf(&buf, "%s/message", get_dir(opts));
|
||||||
if (!file_exists(buf.buf)) {
|
if (!file_exists(buf.buf)) {
|
||||||
const char *commit_buffer = get_commit_buffer(commit, NULL);
|
const char *encoding = get_commit_output_encoding();
|
||||||
|
const char *commit_buffer = logmsg_reencode(commit, NULL, encoding);
|
||||||
find_commit_subject(commit_buffer, &subject);
|
find_commit_subject(commit_buffer, &subject);
|
||||||
res |= write_message(subject, strlen(subject), buf.buf, 1);
|
res |= write_message(subject, strlen(subject), buf.buf, 1);
|
||||||
unuse_commit_buffer(commit, commit_buffer);
|
unuse_commit_buffer(commit, commit_buffer);
|
||||||
|
|
|
@ -54,4 +54,31 @@ test_expect_failure 'rebase --rebase-merges update encoding eucJP to ISO-2022-JP
|
||||||
compare_msg eucJP.txt eucJP ISO-2022-JP
|
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
|
test_done
|
||||||
|
|
|
@ -0,0 +1,3 @@
|
||||||
|
トヒムマヨ
|
||||||
|
|
||||||
|
チb軼鑁g
|
Загрузка…
Ссылка в новой задаче