sequencer: do not die() in do_pick_commit()
Instead of dying there, let the caller high up in the callchain notice the error and handle it (by dying, still). The eventual caller of do_pick_commit() is sequencer_pick_revisions(), which already relays a reported error from its helper functions (including this one), and both of its two callers know how to react to a negative return correctly. So this makes do_pick_commit() callable from new callers that want it not to die, without changing the external behaviour of anything existing. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Johannes Schindelin committed
Aug 26, 2016 at 15:47 UTC
dbfad033d443f27c5579bbb67bd14243b0cbaba6
1 file changed
+8
-6
sequencer.c
+8
-6
@@ -585,12 +585,14 @@ static int do_pick_commit(struct commit *commit, struct replay_opts *opts)
585
* However, if the merge did not even start, then we don't want to
586
* write it at all.
587
*/
588
- if (opts->action == REPLAY_PICK && !opts->no_commit && (res == 0 || res == 1))
589
- update_ref(NULL, "CHERRY_PICK_HEAD", commit->object.oid.hash, NULL,
590
- REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
591
- if (opts->action == REPLAY_REVERT && ((opts->no_commit && res == 0) || res == 1))
592
- update_ref(NULL, "REVERT_HEAD", commit->object.oid.hash, NULL,
593
- REF_NODEREF, UPDATE_REFS_DIE_ON_ERR);
588
+ if (opts->action == REPLAY_PICK && !opts->no_commit && (res == 0 || res == 1) &&
589
+ update_ref(NULL, "CHERRY_PICK_HEAD", commit->object.oid.hash, NULL,
590
+ REF_NODEREF, UPDATE_REFS_MSG_ON_ERR))
591
+ res = -1;
592
+ if (opts->action == REPLAY_REVERT && ((opts->no_commit && res == 0) || res == 1) &&
593
+ update_ref(NULL, "REVERT_HEAD", commit->object.oid.hash, NULL,
594
+ REF_NODEREF, UPDATE_REFS_MSG_ON_ERR))
595
+ res = -1;
596
597
if (res) {
598
error(opts->action == REPLAY_REVERT