summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--bundle.c6
-rwxr-xr-xt/t5704-bundle.sh7
2 files changed, 11 insertions, 2 deletions
diff --git a/bundle.c b/bundle.c
index ff97adcb89..65ea26bdb8 100644
--- a/bundle.c
+++ b/bundle.c
@@ -372,8 +372,10 @@ int create_bundle(struct bundle_header *header, const char *path,
close(rls.in);
if (finish_command(&rls))
return error ("pack-objects died");
- if (!bundle_to_stdout)
- commit_lock_file(&lock);
+ if (!bundle_to_stdout) {
+ if (commit_lock_file(&lock))
+ die_errno("cannot create '%s'", path);
+ }
return 0;
}
diff --git a/t/t5704-bundle.sh b/t/t5704-bundle.sh
index ddc3dc52f4..728ccd88c3 100755
--- a/t/t5704-bundle.sh
+++ b/t/t5704-bundle.sh
@@ -30,6 +30,13 @@ test_expect_success 'tags can be excluded by rev-list options' '
'
+test_expect_success 'die if bundle file cannot be created' '
+
+ mkdir adir &&
+ test_must_fail git bundle create adir --all
+
+'
+
test_expect_failure 'bundle --stdin' '
echo master | git bundle create stdin-bundle.bdl --stdin &&