diff options
author | Miklos Vajna <vmiklos@frugalware.org> | 2008-09-06 18:29:49 +0200 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-09-06 19:49:51 -0700 |
commit | 4271666046b4b3e655eab88821096539099f3b14 (patch) | |
tree | 87394519648f87f4f9141867bd7d37ccd7422046 | |
parent | a6f63ae002237c2eb416d4e2cb43227522e4ea9a (diff) | |
download | git-4271666046b4b3e655eab88821096539099f3b14.tar.gz |
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>
-rw-r--r-- | builtin-merge.c | 1 | ||||
-rwxr-xr-x | t/t6026-merge-attr.sh | 22 |
2 files changed, 23 insertions, 0 deletions
diff --git a/builtin-merge.c b/builtin-merge.c index b857cf6246..bb09e6fb34 100644 --- a/builtin-merge.c +++ b/builtin-merge.c @@ -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) + diff --git a/t/t6026-merge-attr.sh b/t/t6026-merge-attr.sh index 56fc341768..86f47ca595 100755 --- a/t/t6026-merge-attr.sh +++ b/t/t6026-merge-attr.sh @@ -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 |