builtin-merge: release the lockfile in try_merge_strategy()
Once we committed the locked index, we should release the lockfile. In most cases this is done automatically when the process ends, but this is not true in this case. [jc: with additional tests from Eric Raible] Signed-off-by: Miklos Vajna <vmiklos@frugalware.org> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
a6f63ae002
commit
4271666046
@ -576,6 +576,7 @@ static int try_merge_strategy(const char *strategy, struct commit_list *common,
|
||||
(write_cache(index_fd, active_cache, active_nr) ||
|
||||
commit_locked_index(lock)))
|
||||
die ("unable to write %s", get_index_file());
|
||||
rollback_lock_file(lock);
|
||||
return clean ? 0 : 1;
|
||||
} else {
|
||||
args = xmalloc((4 + commit_list_count(common) +
|
||||
|
@ -142,4 +142,26 @@ test_expect_success 'custom merge backend' '
|
||||
rm -f $o $a $b
|
||||
'
|
||||
|
||||
test_expect_success 'up-to-date merge without common ancestor' '
|
||||
test_create_repo repo1 &&
|
||||
test_create_repo repo2 &&
|
||||
test_tick &&
|
||||
(
|
||||
cd repo1 &&
|
||||
>a &&
|
||||
git add a &&
|
||||
git commit -m initial
|
||||
) &&
|
||||
test_tick &&
|
||||
(
|
||||
cd repo2 &&
|
||||
git commit --allow-empty -m initial
|
||||
) &&
|
||||
test_tick &&
|
||||
(
|
||||
cd repo1 &&
|
||||
git pull ../repo2 master
|
||||
)
|
||||
'
|
||||
|
||||
test_done
|
||||
|
Loading…
Reference in New Issue
Block a user