diff options
author | Phillip Wood <phillip.wood@dunelm.org.uk> | 2019-12-06 17:06:09 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2019-12-06 18:32:01 +0100 |
commit | 21b11c6d1de3840dcaf3fa82dae14ca3924f689f (patch) | |
tree | e64d350048a385453c8f208dd31de2df6150a593 /sequencer.c | |
parent | cherry-pick: check commit error messages (diff) | |
download | git-21b11c6d1de3840dcaf3fa82dae14ca3924f689f.tar.xz git-21b11c6d1de3840dcaf3fa82dae14ca3924f689f.zip |
sequencer: write CHERRY_PICK_HEAD for reword and edit
`git commit` relies on the presence of CHERRY_PICK_HEAD to show the
correct error message in the case of an empty pick. This fixes a
regression introduced by the conversion from shell to C. In the shell
version everything was a cherry-pick as far as the sequencer code was
concerned so it always wrote CHERRY_PICK_HEAD. The conversion to C
forgot to update the code that creates CHERRY_PICK_HEAD. We do not want
to create CHERRY_PICK_HEAD for fixup and squash commands as that would
prevent `git commit --amend` from running.
Note that the error message shown by `git commit` for an empty pick
during a rebase is currently wrong as it talks about running `git
cherry-pick --skip` rather than `git rebase --skip`. This will be fixed
in a future commit which is why the tests are in t3403-rebase-skip.sh.
Signed-off-by: Phillip Wood <phillip.wood@dunelm.org.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'sequencer.c')
-rw-r--r-- | sequencer.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/sequencer.c b/sequencer.c index d18aba62f5..d66856818a 100644 --- a/sequencer.c +++ b/sequencer.c @@ -1916,7 +1916,9 @@ static int do_pick_commit(struct repository *r, * However, if the merge did not even start, then we don't want to * write it at all. */ - if (command == TODO_PICK && !opts->no_commit && (res == 0 || res == 1) && + if ((command == TODO_PICK || command == TODO_REWORD || + command == TODO_EDIT) && !opts->no_commit && + (res == 0 || res == 1) && update_ref(NULL, "CHERRY_PICK_HEAD", &commit->object.oid, NULL, REF_NO_DEREF, UPDATE_REFS_MSG_ON_ERR)) res = -1; |