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

Re: #178 parsing of pretty=format:"%an %ad" causes fatal: bad revision '%ad'

From
Jonathan Nieder <jrnieder@gmail.com>
Date
May 2, 2014, 17:23 UTC
Message-ID
<20140502172358.GI9218@google.com>
In-Reply-To
<BLU0-SMTP1116609FAC7E0C76123F929F430@phx.gbl>

(resending with the correct address for the Git for Windows developers. Sorry for the noise.) Hi Dave,

Dave Bradley wrote:
Show 6 quoted lines
> G:\ws_test_env\GIT_TESTBED_TMP\fest-swing-1.x>git log --all --pretty=format:"%an %ad" -- pom.xml
> xxxx xxxx Mon Nov 23 03:09:17 2009 +0000
> xxxx xxxx Mon Nov 23 02:42:24 2009 +0000
>
> G:\ws_test_env\GIT_TESTBED_TMP\fest-swing-1.x>git log --all "--pretty=format:"%an %ad"" -- pom.xml
> fatal: bad revision '%ad'
On Linux, this example gets passed to git as six arguments:
	log
	--all
	--pretty=format:%an
	%ad
	--
	pom.xml

I think the intent was instead to pass five arguments (the third being '--pretty=format:%an %ad'). That means you shouldn't unquote before the space, or in other words that the space should be part of a quoted argument.

On Windows, I believe the argument passing convention is more complicated. Programs can inspect the entire command line if they want to. But there's still an ambiguity in the command you passed: if I look at space-separated or double-quoted parts of the command line, it looks like

	git
	log
	--all
	"--pretty=format:"
	(no space)
	%an
	%ad
	(no space)
	""
	--
	pom.xml

What's the right way to parse this? How can git tell whether %an %ad were meant to be separate arguments or not? In absence of a stronger convention I suspect the simplest rule is to mimic what a Unix shell does, where they are separate arguments because the space is not quoted.

Cc-ing Windows folks in case they have more insight.

Thanks and hope that helps, Jonathan

-- 
-- 
*** Please reply-to-all at all times ***
*** (do not pretend to know who is subscribed and who is not) ***
*** Please avoid top-posting. ***
The msysGit Wiki is here: https://github.com/msysgit/msysgit/wiki - Github accounts are free.

You received this message because you are subscribed to the Google
Groups "msysGit" group.
To post to this group, send email to msysgit@googlegroups.com
To unsubscribe from this group, send email to
msysgit+unsubscribe@googlegroups.com
For more options, and view previous threads, visit this group at
http://groups.google.com/group/msysgit?hl=en_US?hl=en

--- 
You received this message because you are subscribed to the Google Groups "msysGit" group.
To unsubscribe from this group and stop receiving emails from it, send an email to msysgit+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/d/optout.
Previous: Jonathan NiederNext: Erik Faye-Lund
Message 5 of 8 in “#178 parsing of pretty=format:"%an %ad" causes fatal: bad revision '%ad'”
  1. Dave BradleyMay 2, 2014
  2. Erik Faye-LundMay 2, 2014
  3. Junio C HamanoMay 2, 2014
  4. Jonathan NiederMay 2, 2014
  5. Jonathan NiederMay 2, 2014
  6. Erik Faye-LundMay 2, 2014
  7. Dave BradleyMay 4, 2014
  8. Junio C HamanoMay 5, 2014

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.