From b07d9bfd171d881a02d110b68673c58cb63e9f62 Mon Sep 17 00:00:00 2001 From: Phillip Wood Date: Tue, 16 Apr 2019 11:18:41 +0100 Subject: commit/reset: try to clean up sequencer state When cherry-picking or reverting a sequence of commits and if the final pick/revert has conflicts and the user uses `git commit` to commit the conflict resolution and does not run `git cherry-pick --continue` then the sequencer state is left behind. This can cause problems later. In my case I cherry-picked a sequence of commits the last one of which I committed with `git commit` after resolving some conflicts, then a while later, on a different branch I aborted a revert which rewound my HEAD to the end of the cherry-pick sequence on the previous branch. Avoid this potential problem by removing the sequencer state if we're committing or resetting the final pick in a sequence. Signed-off-by: Phillip Wood Signed-off-by: Junio C Hamano --- branch.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'branch.c') diff --git a/branch.c b/branch.c index 28b81a7e02..643694542a 100644 --- a/branch.c +++ b/branch.c @@ -5,6 +5,7 @@ #include "refs.h" #include "refspec.h" #include "remote.h" +#include "sequencer.h" #include "commit.h" #include "worktree.h" @@ -339,8 +340,7 @@ void create_branch(struct repository *r, void remove_branch_state(struct repository *r) { - unlink(git_path_cherry_pick_head(r)); - unlink(git_path_revert_head(r)); + sequencer_post_commit_cleanup(r); unlink(git_path_merge_head(r)); unlink(git_path_merge_rr(r)); unlink(git_path_merge_msg(r)); -- cgit 1.2.3-korg