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

Some PRETTY FORMATS format:<string> options don't work with git-archive export-subst $Format:$

From
Derek Moore <derek.p.moore@gmail.com>
Date
Oct 9, 2014, 15:56 UTC
Message-ID
<CAMsgyKb_-Xm0DH1-xVZa0XHs59nZsOxGwwLWKx-YiTmsJtrFHQ@mail.gmail.com>

I first noticed this using the system git provided in Fedora 21, so I cloned the official git repo, built from source, and it would appear there are even more options that don't work with export-subst in the latest code.

I tested this under commit 63a45136a329bab550425c3142db6071434d935e (HEAD, origin/master, origin/HEAD, master).

Take, for example, the following script:

FILE=Foo.pm DIR=$(mktemp -d /tmp/git.XXXXXX) cd $DIR git init echo '*.pm export-subst ident' >> .gitattributes echo '# Last Author : $Author: $Format:%an$ $' > $FILE echo '# Last Date : $Date: $Format:%ai (%ad)% $' >> $FILE echo '# Last Version : $Revision: $Format:%d$ $' >> $FILE echo '# Last Version v2: $Revision: $Format:%D$ $' >> $FILE echo '# Last Commit : $Commit: $Format:%H$ $' >> $FILE echo '# This File : $Id$' >> $FILE echo 'our $VERSION = (qw($Format:%N$))[1];' >> $FILE git add . git commit -a -m "Initial commit." git notes add -f -m '$Release: 0048 $' git tag -f releases/R0048 git archive HEAD $FILE | tar xf - --to-stdout rm $FILE git checkout -- $FILE cat $FILE git log --format='%N' -1

You can tell I'm attempting to recreate CVS keywords (bwahahaa!) for a project that is insisting they need them.

I'd be happy to write a bunch of unit tests for export-subst and all PRETTY FORMATS format:<string> options, if that would be desirable. I see the t/ directory, and the t/test-lib.sh stuff looks simple enough (TAP in bash, hmm).

Thanks,
Derek
Next: Derek Moore
Message 1 of 4 in “Some PRETTY FORMATS format:<string> options don't work with git-archive export-subst $Format:$”
  1. Derek MooreOct 9, 2014
  2. Derek MooreOct 9, 2014
  3. Jeff KingOct 9, 2014
  4. Derek MooreOct 9, 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.