Johannes Schindelin <> writes:

> To be truly useful, the sequencer should never die() but always return
> an error.
> Signed-off-by: Johannes Schindelin <>
> ---

Instead of dying there, you let the caller high up in the callchain
to notice the error and handle it (by dying).  The eventual caller
of do_pick_commit() is sequencer_pick_revisions(), which already
relays an 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.


>  sequencer.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
> diff --git a/sequencer.c b/sequencer.c
> index 0c8c955..6ac2187 100644
> --- a/sequencer.c
> +++ b/sequencer.c
> @@ -464,7 +464,7 @@ static int do_pick_commit(struct commit *commit, struct 
> replay_opts *opts)
>                * to work on.
>                */
>               if (write_cache_as_tree(head, 0, NULL))
> -                     die (_("Your index file is unmerged."));
> +                     return error (_("Your index file is unmerged."));

While you are touching the line, it is a good idea to correct an
obvious style error like this one.  "Do one thing and one thing well
in a commit" is a good discipline, but it is absurd to take it to
the extreme.

>       } else {
>               unborn = get_sha1("HEAD", head);
>               if (unborn)
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to
More majordomo info at

Reply via email to