git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: something fishy with Git commit and log from file

From
Junio C Hamano <gitster@pobox.com>
Date
Aug 6, 2008, 16:50 UTC
Message-ID
<7vy73aqe9m.fsf@gitster.siamese.dyndns.org>
In-Reply-To
<4899D119.1080403@obry.net>
Pascal Obry <pascal@obry.net> writes:
Show 18 quoted lines
> Junio C Hamano a écrit :
>> Pascal Obry <pascal@obry.net> writes:
>>
>>> So definitely a Git bug! Can be reproduced with:
>>>
>>>    $ mkdir repo && cd repo
>>>    $ git init
>>>    $ mkdir dir
>>>    $ cd dir
>>>    $ echo file > file
>>>    $ echo log > log
>>>    $ git add file
>>>    $ git commit --file=log
>>>    fatal: could not read log file 'log': No such file or directory
>>
>> Try it without cding down to "dir".
>
> Yes it works.

Perhaps something like this. This must be another one of those regressions introduced in C rewrite.

diff --git a/builtin-commit.c b/builtin-commit.c
index b783e6e..fcc9c59 100644
--- a/builtin-commit.c
+++ b/builtin-commit.c
@@ -469,7 +469,10 @@ static int prepare_to_commit(const char *index_file, const char *prefix)
 			die("could not read log from standard input");
 		hook_arg1 = "message";
 	} else if (logfile) {
-		if (strbuf_read_file(&sb, logfile, 0) < 0)
+		const char *lf = logfile;
+		if (prefix)
+			lf = prefix_filename(prefix, strlen(prefix), logfile);
+		if (strbuf_read_file(&sb, lf, 0) < 0)
 			die("could not read log file '%s': %s",
 			    logfile, strerror(errno));
 		hook_arg1 = "message";
Previous: Pascal ObryNext: Pascal Obry
Message 6 of 15 in “something fishy with Git commit and log from file”
  1. Pascal ObryAug 6, 2008
  2. Luciano RochaAug 6, 2008
  3. Pascal ObryAug 6, 2008
  4. Junio C HamanoAug 6, 2008
  5. Pascal ObryAug 6, 2008
  6. Junio C HamanoAug 6, 2008
  7. Pascal ObryAug 6, 2008
  8. files given on the command line are relative to $cwdJunio C Hamano, Aug 6, 2008
  9. Olivier MarinAug 6, 2008
  10. Junio C HamanoAug 6, 2008
  11. Junio C HamanoAug 6, 2008
  12. Pierre HabouzitAug 6, 2008
  13. Samuel TardieuAug 7, 2008
  14. Luciano RochaAug 7, 2008
  15. Junio C HamanoAug 7, 2008

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.