Merge branch 'ml/filter-branch-no-op-error' into next
[gitweb.git] / merge-recursive.c
index 04ba20b7e6eb7a2c9e84814837a6ba4d30ffe320..8fa7efee2fd3ade38de97d36aad9c584aa0c49be 100644 (file)
@@ -3239,11 +3239,13 @@ int merge_recursive_generic(struct merge_options *o,
        hold_locked_index(&lock, LOCK_DIE_ON_ERROR);
        clean = merge_recursive(o, head_commit, next_commit, ca,
                        result);
-       if (clean < 0)
+       if (clean < 0) {
+               rollback_lock_file(&lock);
                return clean;
+       }
 
-       if (active_cache_changed &&
-           write_locked_index(&the_index, &lock, COMMIT_LOCK))
+       if (write_locked_index(&the_index, &lock,
+                              COMMIT_LOCK | SKIP_IF_UNCHANGED))
                return err(o, _("Unable to write index."));
 
        return clean ? 0 : 1;