(-cc: Phil) Johannes Sixt wrote: > IMO, it doesn't make sense that git-reset aborts a cherry-pick sequence: > When I messed up a difficult conflict in the middle of a cherry-pick > sequence, it might be useful to be able to 'git reset --hard && git > cherry-pick that-one-commit' to restart the conflict resolution. > > (But does a single-commit cherry-pick during a multi-commit cherry-pick > work to begin with?) It should, I think. Here are patches to address some UI warts (such as that one) in current cherry-pick code. Patch 1 cleans up to prepare for patch 2, which in turn makes "git cherry-pick --continue" act like "git rebase --continue" by commiting a conflict resolution if it has not already been committed. This brings us closer to a less confusing world in which all commands that can exit and ask the user to help to get closer to their goal provide a --continue option as a standard interface to resume (I guess "git merge --continue" is all that's left to do afterwards). Patch 3 is from Ram's rr/revert-cherry-pick series. It doesn't have much to do with this series, but I'd rather work on a codebase with this particular patch applied, so I applied it before working on patch 4. Patch 4 uses Junio's cmdline_info API to distinguish single-picks from multi-picks. This is the title feature. For a while I thought something like this was the only sane thing to do, but laziness won out. Patches 5-7 remove hacks that patch 4 makes superfluous. Patch 7 has the downside that if anyone had a .git/sequencer-old directory lying around, then git will not care after applying the patch and it will sit just taking up its few bytes and distracting people that run "ls .git". I'm not sure whether that's worth fixing, and if so how. Anyway, I hope you enjoy the series. Thoughts and bug reports appreciated as usual. Jonathan Nieder (7): revert: give --continue handling its own function revert: allow cherry-pick --continue to commit before resuming revert: pass around rev-list args in already-parsed form revert: allow single-pick in the middle of cherry-pick sequence revert: do not remove state until sequence is finished Revert "reset: Make reset remove the sequencer state" revert: stop creating or removing sequencer-old directory branch.c | 2 - builtin/revert.c | 138 ++++++++++++++++++++++----------- sequencer.c | 10 +-- sequencer.h | 12 +--- t/t3510-cherry-pick-sequence.sh | 162 +++++++++++++++++++++++++++++++++++++-- t/t7106-reset-sequence.sh | 52 ------------- 6 files changed, 251 insertions(+), 125 deletions(-) delete mode 100755 t/t7106-reset-sequence.sh -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html