Skip to contentSkip to conversation

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

DISCUSSION Cornelius 4 participants 4 messages Jun 15, 2016

lore
Share & tools
lore

Cornelius

author
#0 lore raw

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 <[email protected]>
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

#1 lore raw

Cornelius venit, vidit, dixit 08.04.2009 14:56:

Quoted 14 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 <[email protected]>
Date:   Wed Apr 8 14:39:17 2009 +0200

tagmessage
commit 77e312e0527f87604e4c70ebf6040e79bb55d2ed
<snip>

Quoted 5 lines

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

#2 lore raw

2009/4/8 Michael J Gruber <[email protected]>:

Quoted 4 lines

Cornelius venit, vidit, dixit 08.04.2009 14:56:

Quoted 3 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,

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

#3 lore raw

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

Quoted 4 lines · Santi Béjar

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?