Re: [PATCH 03/15] sequencer: lib'ify do_pick_commit()
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 25, 2016, 21:17 UTC
- Message-ID
- <xmqqh9a8lf9t.fsf@gitster.mtv.corp.google.com>
- In-Reply-To
- <92fdb70f3db157f8a3d2442d872e989d81c6756e.1471968378.git.johannes.schindelin@gmx.de>
Johannes Schindelin <johannes.schindelin@gmx.de> writes:
Show 5 quoted lines
> To be truly useful, the sequencer should never die() but always return > an error. > > Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> > ---
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.
Good.
Show 13 quoted lines
> 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)