[PATCH v4 4/5] merge: close the index lock when not writing the new index
- From
Joel Teichroeb <joel@teichroeb.net>
- Date
- Jun 8, 2017, 00:55 UTC
- Message-ID
- <20170608005535.13080-5-joel@teichroeb.net>
- In-Reply-To
- <20170608005535.13080-1-joel@teichroeb.net>
If the merge does not have anything to do, it does not unlock the index, causing any further index operations to fail. Thus, always unlock the index regardless of outcome.
Signed-off-by: Joel Teichroeb <joel@teichroeb.net> --- merge-recursive.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/merge-recursive.c b/merge-recursive.c index ae5238d82c..16bb5512ef 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2145,9 +2145,12 @@ int merge_recursive_generic(struct merge_options *o, if (clean < 0) return clean; - if (active_cache_changed && - write_locked_index(&the_index, lock, COMMIT_LOCK)) - return err(o, _("Unable to write index.")); + if (active_cache_changed) { + if (write_locked_index(&the_index, lock, COMMIT_LOCK)) + return err(o, _("Unable to write index.")); + } else { + rollback_lock_file(lock); + } return clean ? 0 : 1; }
-- 2.13.0