Bug report - git show <tagname> together with --pretty=format
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
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 +0200tagmessage
commit77e312e0527f87604e4c70ebf6040e79bb55d2ed
<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
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
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?