diff options
| author | Junio C Hamano <gitster@pobox.com> | 2018-03-14 12:01:03 -0700 |
|---|---|---|
| committer | Junio C Hamano <gitster@pobox.com> | 2018-03-14 12:01:03 -0700 |
| commit | 787aa97f217eb97827205271daba6d95c80b9049 (patch) | |
| tree | 5050330a38146d8ea2c39ef67852f69c08e2abe1 /merge-recursive.c | |
| parent | 868f7d23384931641aa4901aab27f3f23577e63b (diff) | |
| parent | 350292a1efb38bbcd6255a424df6adbfe78910ac (diff) | |
Merge branch 'ma/roll-back-lockfiles'
Some codepaths used to take a lockfile and did not roll it back;
they are automatically rolled back at program exit, so there is no
real "breakage", but it still is a good practice to roll back when
you are done with a lockfile.
* ma/roll-back-lockfiles:
sequencer: do not roll back lockfile unnecessarily
merge: always roll back lock in `checkout_fast_forward()`
merge-recursive: always roll back lock in `merge_recursive_generic()`
sequencer: always roll back lock in `do_recursive_merge()`
sequencer: make lockfiles non-static
Diffstat (limited to 'merge-recursive.c')
| -rw-r--r-- | merge-recursive.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/merge-recursive.c b/merge-recursive.c index 6ff971f9a2..129577987b 100644 --- a/merge-recursive.c +++ b/merge-recursive.c @@ -2218,12 +2218,15 @@ 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)) return err(o, _("Unable to write index.")); + rollback_lock_file(&lock); return clean ? 0 : 1; } |
