Thread (6 messages) flat view 6 messages, 4 authors, 2016-06-15

Re: update @version in file

From: Jakub Narebski <hidden>
Date: 2016-06-15 22:46:45

Andreas Ericsson [off-list ref] writes:
takeshin wrote:
quoted
Hi,
I have following PHPDoc code in files of my repository:
/**
 * Class description
 * @version 1.2
 */
 class Name…
Is there a chance that git could increment this @version
automatically
on each commit
No, but see GIT-VERSION-GEN and "git help describe" for info on how to
replace such version tags using a script when you cut a release of your
project.
quoted
or stamp the file somehow?
Yes. It can only do so using the blob id though. 
See documentation of `ident` attribute in gitattributes(5) manpage.

Well, you can always use `export-subst` gitattribute to make
git-archive do keyword expansion, and there you can use things like
date or decoration (tag / version).
Things like this can be done in CVS and Subversion because
a) CVS and SVN are file-based. The version they write are not the
   version of the *project*, but the version of the file (not even
   remotely the same thing).
b) they do not really support proper branching.

In git (which is snapshot based and supports branching very well indeed),
it *could* be done, but it would incur such an enormous performance
penalty when switching branches, creating a new commit or re-writing
history (since every file would have to be altered) that it's never
been considered worth adding.
You can cobble something together using "smudge" (to do keyword
expansion) and "clean" (to store files with keywords not expanded in
git repository) filters, see `filter` attribute in gitattributes(5).
But I am not sure it is worth it.

HTH
-- 
Jakub Narebski
Poland
ShadeHawk on #git
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help