threads / bug / 18783

Bug report - git show <tagname> together with --pretty=format

Subject: Bug report - git show <tagname> together with --pretty=format

## tl;dr

4 messages between Apr 8, 2009 and Apr 8, 2009.

replies: 3people: 4as markdown or json

Cornelius· Apr 8, 2009, 12:56 UTC · lore
Hi,
I've a problem with git 1.6.2.2 (self compiled) and git show. I use it's 
output for parsing the git data, so this is more than a minor issue for 
me. When you normally do a git show on a tag name it's output resembles 
the following:
tag <tagname>
Tagger: Cornelius <c.r1@gmx.de>
Date:   Wed Apr 8 14:39:17 2009 +0200

tagmessage commit 77e312e0527f87604e4c70ebf6040e79bb55d2ed <snip>

Now when you do a git show <tagname> --pretty=format:"ENDOFGITTAGOUTPUTMESAGEHERE%n%H" -- the Date: line is missing. Git 1.6.0.5 (which is avaible in my distro's repos) doesn't have this issue. Please CC me, I'm not subcribed here. Cornelius

Michael J Gruber· Apr 8, 2009, 15:28 UTC · re: Cornelius · lore

Re: Bug report - git show <tagname> together with --pretty=format

Cornelius venit, vidit, dixit 08.04.2009 14:56:
Show 19 quoted lines
> Hi,
> I've a problem with git 1.6.2.2 (self compiled) and git show. I use it's 
> output for parsing the git data, so this is more than a minor issue for 
> me. When you normally do a git show on a tag name it's output resembles 
> the following:
> tag <tagname>
> Tagger: Cornelius <c.r1@gmx.de>
> Date:   Wed Apr 8 14:39:17 2009 +0200
> 
> 
> tagmessage
> commit 77e312e0527f87604e4c70ebf6040e79bb55d2ed
> <snip>
> 
> Now when you do a git show <tagname> 
> --pretty=format:"ENDOFGITTAGOUTPUTMESAGEHERE%n%H" --
> the Date: line is missing. Git 1.6.0.5 (which is avaible in my distro's 
> repos) doesn't have this issue. Please CC me, I'm not subcribed here.
> Cornelius
It's not a bug, it's a feature ;)

In fact, git show used to ignore format specifiers for the tag part and apply them to the commit part only. Since ea718e6 (show <tag>: reuse pp_user_info() instead of duplicating code, 2009-01-02) (which is in v1.6.2) it applies the format to both, which is why there is no tag date unless you ask for it (or use the default format).

Michael
Santi Béjar· Apr 8, 2009, 16:37 UTC · re: Michael J Gruber · lore

Re: Bug report - git show <tagname> together with --pretty=format

2009/4/8 Michael J Gruber <git@drmicha.warpmail.net>:
> Cornelius venit, vidit, dixit 08.04.2009 14:56:
>> Hi,
>> I've a problem with git 1.6.2.2 (self compiled) and git show. I use it's
>> output for parsing the git data,

In addition to what Michael said, you should use the plumbing commands instead of the porcelain (see man git). They are specifically for use with scripts and parse their output. The output from the porcelain commands can change.

Santi
Teemu Likonen· Apr 8, 2009, 19:47 UTC · re: Santi Béjar · lore

Plumbing commands (was: Bug report - git show <tagname> together with --pretty=format)

On 2009-04-08 18:37 (+0200), Santi Béjar wrote:
> In addition to what Michael said, you should use the plumbing commands
> instead of the porcelain (see man git). They are specifically for use
> with scripts and parse their output. The output from the porcelain
> commands can change.
Hmm, I've been using a command like this in a script:
    date=$(git log -1 --pretty=format:%ai $REV)
Would it be better to change it to
    date=$(git rev-list -1 --pretty=format:%ai $REV | sed -e 1d)
or something else?

← back to recent threads