Code

Merge branch 'jc/maint-format-patch-o-relative'
authorJunio C Hamano <gitster@pobox.com>
Thu, 22 Jan 2009 00:50:19 +0000 (16:50 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 22 Jan 2009 00:50:19 +0000 (16:50 -0800)
* jc/maint-format-patch-o-relative:
  Teach format-patch to handle output directory relative to cwd

Conflicts:
t/t4014-format-patch.sh

1  2 
builtin-log.c
t/t4014-format-patch.sh

diff --cc builtin-log.c
Simple merge
index 9d99dc28879d4f7f35001e0785f97f319fe13b40,16de4364d74bfdb3069149af740d329351b05e2c..f045898fe3196b068d03a66fd9edeea6f32add30
@@@ -230,29 -230,54 +230,79 @@@ test_expect_success 'shortlog of cover-
  
  '
  
 +cat > expect << EOF
 +---
 + file |   16 ++++++++++++++++
 + 1 files changed, 16 insertions(+), 0 deletions(-)
 +
 +diff --git a/file b/file
 +index 40f36c6..2dc5c23 100644
 +--- a/file
 ++++ b/file
 +@@ -13,4 +13,20 @@ C
 + 10
 + D
 + E
 + F
 ++5
 +EOF
 +
 +test_expect_success 'format-patch respects -U' '
 +
 +      git format-patch -U4 -2 &&
 +      sed -e "1,/^$/d" -e "/^+5/q" < 0001-This-is-an-excessively-long-subject-line-for-a-messa.patch > output &&
 +      test_cmp expect output
 +
 +'
 +
+ 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