summaryrefslogtreecommitdiff
path: root/t/t4014-format-patch.sh
diff options
context:
space:
mode:
authorBert Wesarg <bert.wesarg@googlemail.com>2019-10-11 08:36:41 (GMT)
committerJunio C Hamano <gitster@pobox.com>2019-10-12 02:51:20 (GMT)
commitedefc318731f69c3e5354ead9f7505e789562375 (patch)
tree028c2bc8b344df445ea07ce86f0a932d8572c8c9 /t/t4014-format-patch.sh
parent50094ca45f27b8bf5f4c234b2f2643ecd61b8c86 (diff)
downloadgit-edefc318731f69c3e5354ead9f7505e789562375.zip
git-edefc318731f69c3e5354ead9f7505e789562375.tar.gz
git-edefc318731f69c3e5354ead9f7505e789562375.tar.bz2
format-patch: create leading components of output directory
'git format-patch -o <outdir>' did an equivalent of 'mkdir <outdir>' not 'mkdir -p <outdir>', which is being corrected. Avoid the usage of 'adjust_shared_perm' on the leading directories which may have security implications. Achieved by temporarily disabling of 'config.sharedRepository' like 'git init' does. Signed-off-by: Bert Wesarg <bert.wesarg@googlemail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t4014-format-patch.sh')
-rwxr-xr-xt/t4014-format-patch.sh23
1 files changed, 23 insertions, 0 deletions
diff --git a/t/t4014-format-patch.sh b/t/t4014-format-patch.sh
index 83f5261..c455181 100755
--- a/t/t4014-format-patch.sh
+++ b/t/t4014-format-patch.sh
@@ -1606,6 +1606,29 @@ test_expect_success 'From line has expected format' '
test_cmp from filtered
'
+test_expect_success 'format-patch -o with no leading directories' '
+ rm -fr patches &&
+ git format-patch -o patches master..side &&
+ count=$(git rev-list --count master..side) &&
+ ls patches >list &&
+ test_line_count = $count list
+'
+
+test_expect_success 'format-patch -o with leading existing directories' '
+ git format-patch -o patches/side master..side &&
+ count=$(git rev-list --count master..side) &&
+ ls patches/side >list &&
+ test_line_count = $count list
+'
+
+test_expect_success 'format-patch -o with leading non-existing directories' '
+ rm -fr patches &&
+ git format-patch -o patches/side master..side &&
+ count=$(git rev-list --count master..side) &&
+ ls patches/side >list &&
+ test_line_count = $count list
+'
+
test_expect_success 'format-patch format.outputDirectory option' '
test_config format.outputDirectory patches &&
rm -fr patches &&