reset.c: share call to die_if_unmerged_cache()
authorMartin von Zweigbergk <martinvonz@gmail.com>
Tue, 15 Jan 2013 05:47:40 +0000 (21:47 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 15 Jan 2013 17:38:07 +0000 (09:38 -0800)
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)

Signed-off-by: Martin von Zweigbergk <martinvonz@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin/reset.c
index 2187d6453de091a17179bed0ba2a0d58d9c90512..4e341950a1d98d3c033b62aca36096b0a1dc9ddd 100644 (file)
@@ -337,15 +337,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);
        }