Teach format-patch to handle output directory relative to cwd

Without any explicit -o parameter, we correctly avoided putting the
resulting patch output to the toplevel.  We should do the same when
the user gave a relative pathname to be consistent with this case.

Noticed by Cesar Eduardo Barros.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Junio C Hamano
2009-01-12 15:18:02 -08:00
parent 141201d124
commit 9800a754f9
2 changed files with 76 additions and 4 deletions

View File

@@ -3,7 +3,7 @@
# Copyright (c) 2006 Junio C Hamano
#
test_description='Format-patch skipping already incorporated patches'
test_description='various format-patch tests'
. ./test-lib.sh
@@ -230,4 +230,54 @@ test_expect_success 'shortlog of cover-letter wraps overly-long onelines' '
'
test_expect_success 'format-patch from a subdirectory (1)' '
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1
) &&
case "$filename" in
0*)
;; # ok
*)
echo "Oops? $filename"
false
;;
esac &&
test -f "$filename"
'
test_expect_success 'format-patch from a subdirectory (2)' '
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1 -o ..
) &&
case "$filename" in
../0*)
;; # ok
*)
echo "Oops? $filename"
false
;;
esac &&
basename=$(expr "$filename" : ".*/\(.*\)") &&
test -f "sub/$basename"
'
test_expect_success 'format-patch from a subdirectory (3)' '
here="$TEST_DIRECTORY/$test" &&
rm -f 0* &&
filename=$(
rm -rf sub &&
mkdir -p sub/dir &&
cd sub/dir &&
git format-patch -1 -o "$here"
) &&
basename=$(expr "$filename" : ".*/\(.*\)") &&
test -f "$basename"
'
test_done