Merge branch 'sg/assume-no-todo-update-in-cherry-pick'

While running "revert" or "cherry-pick --edit" for multiple
commits, a recent regression incorrectly detected "nothing to
commit, working tree clean", instead of replaying the commits,
which has been corrected.

* sg/assume-no-todo-update-in-cherry-pick:
  sequencer: don't re-read todo for revert and cherry-pick
This commit is contained in:
Junio C Hamano 2019-12-06 15:09:21 -08:00
Родитель ef3ce7c4b9 befd4f6a81
Коммит f233c9f455
2 изменённых файлов: 31 добавлений и 1 удалений

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

@ -3930,7 +3930,7 @@ static int pick_commits(struct repository *r,
item->commit,
arg, item->arg_len,
opts, res, 0);
} else if (check_todo && !res) {
} else if (is_rebase_i(opts) && check_todo && !res) {
struct stat st;
if (stat(get_todo_path(opts), &st)) {

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

@ -52,4 +52,34 @@ test_expect_success 'todo is re-read after reword and squash' '
test_cmp expected actual
'
test_expect_success 're-reading todo doesnt interfere with revert --edit' '
git reset --hard third &&
git revert --edit third second &&
cat >expect <<-\EOF &&
Revert "second"
Revert "third"
third
second
first
EOF
git log --format="%s" >actual &&
test_cmp expect actual
'
test_expect_success 're-reading todo doesnt interfere with cherry-pick --edit' '
git reset --hard first &&
git cherry-pick --edit second third &&
cat >expect <<-\EOF &&
third
second
first
EOF
git log --format="%s" >actual &&
test_cmp expect actual
'
test_done