Skip to content

Commit

Permalink
Merge pull request #797 from glhez/master
Browse files Browse the repository at this point in the history
`git bundle create <bundle>` leaks handle the revlist is empty.
  • Loading branch information
dscho authored Jun 23, 2016
2 parents dd1308a + 0ef742a commit 9deedf2
Show file tree
Hide file tree
Showing 2 changed files with 19 additions and 3 deletions.
7 changes: 4 additions & 3 deletions bundle.c
Original file line number Diff line number Diff line change
Expand Up @@ -447,10 +447,11 @@ int create_bundle(struct bundle_header *header, const char *path,
object_array_remove_duplicates(&revs.pending);

ref_count = write_bundle_refs(bundle_fd, &revs);
if (!ref_count)
die(_("Refusing to create empty bundle."));
else if (ref_count < 0)
if (ref_count <= 0) {
if (!ref_count)
error(_("Refusing to create empty bundle."));
goto err;
}

/* write pack */
if (write_pack_data(bundle_fd, &revs)) {
Expand Down
15 changes: 15 additions & 0 deletions t/tgfw790-git-bundle.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
#!/bin/sh
test_description='
test git-bundle under git for Windows
When we select an empty set of commit (like git bundle create foobar.bundle master..master),
we should not have problem with the foobar.bundle.lock being locked (especially on Windows).
'

. ./test-lib.sh

test_expect_failure 'try to create a bundle with empty ref count' '
git bundle create foobar.bundle master..master
'

test_done

0 comments on commit 9deedf2

Please sign in to comment.