aboutsummaryrefslogtreecommitdiff
path: root/t/t7500-commit.sh
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-08-06 11:43:47 -0700
committerJunio C Hamano <gitster@pobox.com>2008-08-06 13:38:18 -0700
commitdbd0f5c7692cce0c5fea535a06622b3a93df9598 (patch)
tree92606e8799f9f518296ef4e9124cf782d7e234f2 /t/t7500-commit.sh
parenteabbc99a2198d1cae62ce951457e7edc23b5f1a9 (diff)
downloadgit-dbd0f5c7692cce0c5fea535a06622b3a93df9598.tar.gz
git-dbd0f5c7692cce0c5fea535a06622b3a93df9598.tar.xz
Files given on the command line are relative to $cwd
When running "git commit -F file" and "git tag -F file" from a subdirectory, we should take it as relative to the directory we started from, not relative to the top-level directory. This adds a helper function "parse_options_fix_filename()" to make it more convenient to fix this class of issues. Ideally, parse_options() should support a new type of option, "OPT_FILENAME", to do this uniformly, but this patch is meant to go to 'maint' to fix it minimally. One thing to note is that value for "commit template file" that comes from the command line is taken as relative to $cwd just like other parameters, but when it comes from the configuration varilable 'commit.template', it is taken as relative to the working tree root as before. I think this difference actually is sensible (not that I particularly think commit.template itself is sensible). Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7500-commit.sh')
-rwxr-xr-xt/t7500-commit.sh29
1 files changed, 29 insertions, 0 deletions
diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh
index baed6ce96..823256a24 100755
--- a/t/t7500-commit.sh
+++ b/t/t7500-commit.sh
@@ -138,4 +138,33 @@ test_expect_success '--signoff' '
diff expect output
'
+test_expect_success 'commit message from file (1)' '
+ mkdir subdir &&
+ echo "Log in top directory" >log &&
+ echo "Log in sub directory" >subdir/log &&
+ (
+ cd subdir &&
+ git commit --allow-empty -F log
+ ) &&
+ commit_msg_is "Log in sub directory"
+'
+
+test_expect_success 'commit message from file (2)' '
+ rm -f log &&
+ echo "Log in sub directory" >subdir/log &&
+ (
+ cd subdir &&
+ git commit --allow-empty -F log
+ ) &&
+ commit_msg_is "Log in sub directory"
+'
+
+test_expect_success 'commit message from stdin' '
+ (
+ cd subdir &&
+ echo "Log with foo word" | git commit --allow-empty -F -
+ ) &&
+ commit_msg_is "Log with foo word"
+'
+
test_done