Re: [PATCH 08/19] reset.c: share call to die_if_unmerged_cache()
From: Junio C Hamano <hidden>
Date: 2016-06-15 22:55:42
Martin von Zweigbergk [off-list ref] writes:
Use a single condition to guard the call to die_if_unmerged_cache for
both --soft and --keep. This avoids the small distraction of the
precondition check from the logic following it.
Also change an instance of
if (e)
err = err || f();
to the almost as short, but clearer
if (e && !err)
err = f();
(which is equivalent since we only care whether exit code is 0)It is not just equivalent, but should give us identical result, even if we cared the actual value. And I tend to agree that the latter is more readable, especially when f() can be longer, which is often the case in real life. Happy to see this change.
quoted hunk
--- builtin/reset.c | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-)diff --git a/builtin/reset.c b/builtin/reset.c index 4d556e7..42d1563 100644 --- a/builtin/reset.c +++ b/builtin/reset.c@@ -336,15 +336,13 @@ int cmd_reset(int argc, const char **argv, const char *prefix) /* Soft reset does not touch the index file nor the working tree * at all, but requires them in a good order. Other resets reset * the index file to the tree object we are switching to. */ - if (reset_type == SOFT) + if (reset_type == SOFT || reset_type == KEEP) die_if_unmerged_cache(reset_type); - else { - int err; - if (reset_type == KEEP) - die_if_unmerged_cache(reset_type); - err = reset_index_file(sha1, reset_type, quiet); - if (reset_type == KEEP) - err = err || reset_index_file(sha1, MIXED, quiet); + + if (reset_type != SOFT) { + int err = reset_index_file(sha1, reset_type, quiet); + if (reset_type == KEEP && !err) + err = reset_index_file(sha1, MIXED, quiet); if (err) die(_("Could not reset index file to revision '%s'."), rev); }