Merge branch 'jk/sequencer-missing-author-name-check' into maint-2.38

Typofix in code.

* jk/sequencer-missing-author-name-check:
  sequencer: detect author name errors in read_author_script()
This commit is contained in:
Junio C Hamano 2022-10-25 17:11:38 -07:00
Родитель ff8d1ec5b8 45350aeb11
Коммит 553ea9d8c7
2 изменённых файлов: 60 добавлений и 1 удалений

Просмотреть файл

@ -915,7 +915,7 @@ int read_author_script(const char *path, char **name, char **email, char **date,
error(_("missing 'GIT_AUTHOR_EMAIL'"));
if (date_i == -2)
error(_("missing 'GIT_AUTHOR_DATE'"));
if (date_i < 0 || email_i < 0 || date_i < 0 || err)
if (name_i < 0 || email_i < 0 || date_i < 0 || err)
goto finish;
*name = kv.items[name_i].util;
*email = kv.items[email_i].util;

59
t/t3438-rebase-broken-files.sh Executable file
Просмотреть файл

@ -0,0 +1,59 @@
#!/bin/sh
test_description='rebase behavior when on-disk files are broken'
. ./test-lib.sh
test_expect_success 'set up conflicting branches' '
test_commit base file &&
git checkout -b branch1 &&
test_commit one file &&
git checkout -b branch2 HEAD^ &&
test_commit two file
'
create_conflict () {
test_when_finished "git rebase --abort" &&
git checkout -B tmp branch2 &&
test_must_fail git rebase branch1
}
check_resolve_fails () {
echo resolved >file &&
git add file &&
test_must_fail git rebase --continue
}
for item in NAME EMAIL DATE
do
test_expect_success "detect missing GIT_AUTHOR_$item" '
create_conflict &&
grep -v $item .git/rebase-merge/author-script >tmp &&
mv tmp .git/rebase-merge/author-script &&
check_resolve_fails
'
done
for item in NAME EMAIL DATE
do
test_expect_success "detect duplicate GIT_AUTHOR_$item" '
create_conflict &&
grep -i $item .git/rebase-merge/author-script >tmp &&
cat tmp >>.git/rebase-merge/author-script &&
check_resolve_fails
'
done
test_expect_success 'unknown key in author-script' '
create_conflict &&
echo "GIT_AUTHOR_BOGUS=${SQ}whatever${SQ}" \
>>.git/rebase-merge/author-script &&
check_resolve_fails
'
test_done