diff --git a/bundle.c b/bundle.c index bbf4efa0a0..da45536224 100644 --- a/bundle.c +++ b/bundle.c @@ -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)) { diff --git a/t/tgfw790-git-bundle.sh b/t/tgfw790-git-bundle.sh new file mode 100644 index 0000000000..6bfa23c141 --- /dev/null +++ b/t/tgfw790-git-bundle.sh @@ -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