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

Re: update @version in file

From
Jakub Narebski <jnareb@gmail.com>
Date
May 13, 2009, 16:56 UTC
Message-ID
<200905131856.46344.jnareb@gmail.com>
In-Reply-To
<20090513160415.GA4097@andros.launchmodem.com>
On Wed, 13 May 2009, Dan Loewenherz wrote:
> On 13/05/09 02:42 -0700, Jakub Narebski wrote:
> > Andreas Ericsson <ae@op5.se> writes:
Show 5 quoted lines
> > > 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.
> 
> Couldn't Git be a little more friendly? 
No, Git cannot have that feature.
> You can choose to ignore an uncommitted file through the `git update-index 
> --assume-unchanged` command. But AFAIK, Git doesn't allow one to ignore 
> uncommitted _lines_ in tracked files. If this feature were implemented, a 
> post commit hook could write in the latest commit hash and git wouldn't care.
No, I am afraid it is not possible. Let me explain
1. Git doesn't touch files which didn't change during rewinding (going
   back in history, perhaps to start development of maintenance branch,
   or doing bisection of history to find commit which introduced a bug),
   and when switching branches. If keyword expansion was about *commit*
   information (like description/decoration e.g. 'v1.6.3-17-g35805ce',
   or author, or change date) then when switching branches (going to
   other commit, with other info) you would have to rewrite all files.
   This would very badly affect performance. Also, when committing you
   would have to rewrite all files.
2. If you wanted however to have *file* version (like in CVS), then it
   is impossible because Git doesn't store such info (well, beside
   blob id of a contents of a file, but that is not exactly a version
   number); moreover it doesn't make much sense to know such number.
   It is next to useless; it is changesets that matter. CVS has it
   because it evolved from file-based version control system, only
   cobbled together.
 
> Is this something that is worth pursuing?

You can write your own clear/smudge filters if you are stubborn about having version info in files which are under version control (and you can ask SCM at which version you are), rather than adding version info on release (so the program can support --version option).

-- 
Jakub Narebski
Poland
Previous: Dan LoewenherzNext: Matthieu Moy
Message 6 of 10 in “update @version in file”
  1. takeshinMay 13, 2009
  2. Andreas EricssonMay 13, 2009
  3. takeshinMay 13, 2009
  4. Jakub NarebskiMay 13, 2009
  5. Dan LoewenherzMay 13, 2009
  6. Jakub NarebskiMay 13, 2009
  7. Matthieu MoyMay 13, 2009
  8. Andreas EricssonMay 13, 2009
  9. Jakub NarebskiMay 13, 2009
  10. Matthieu MoyMay 14, 2009

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.