Re: [PATCH] files given on the command line are relative to $cwd
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Aug 6, 2008, 20:59 UTC
- Message-ID
- <7vd4kln9le.fsf@gitster.siamese.dyndns.org>
- In-Reply-To
- <7vtzdxnbgk.fsf@gitster.siamese.dyndns.org>
Junio C Hamano <gitster@pobox.com> writes:
Show 17 quoted lines
> Olivier Marin <dkr+ml.git@free.fr> writes:
>
>> Junio C Hamano a écrit :
>>>
>>> static int parse_and_validate_options(int argc, const char *argv[],
>>> - const char * const usage[])
>>> + const char * const usage[],
>>> + const char *prefix)
>>> {
>>> int f = 0;
>>>
>>> argc = parse_options(argc, argv, builtin_commit_options, usage, 0);
>>> + logfile = parse_options_fix_filename(prefix, logfile);
>>
>> It breaks the "git commit -F -" case, no?
>
> Does it? Ah, yeah, t7500 #15 does not go down to a subdirectory.Ok, this squashed in on top of the previous one should cover the case.
Thanks for saving me in time from a major embarrassment. I already tagged 1.5.6.5 with the botched one but haven't pushed it out, so I can safely rewind.
---
parse-options.c | 2 +- t/t7500-commit.sh | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletions(-)
diff --git a/parse-options.c b/parse-options.c index d771bf4..12c8822 100644 --- a/parse-options.c +++ b/parse-options.c @@ -432,7 +432,7 @@ int parse_opt_approxidate_cb(const struct option *opt, const char *arg, */ extern const char *parse_options_fix_filename(const char *prefix, const char *file) { - if (!file || !prefix || is_absolute_path(file)) + if (!file || !prefix || is_absolute_path(file) || !strcmp("-", file)) return file; return prefix_filename(prefix, strlen(prefix), file); } diff --git a/t/t7500-commit.sh b/t/t7500-commit.sh index 2ab791b..823256a 100755 --- a/t/t7500-commit.sh +++ b/t/t7500-commit.sh @@ -159,4 +159,12 @@ test_expect_success 'commit message from file (2)' ' 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