Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to expand some version keywords in Mercurial?

In CVS I could put $LOG$ into the source file and when the file is checked in $LOG$ will be expanded into true logs in the file.

But how to implement this in Mercurial? Of course I mean the other keyword such as the latest checkin date and time.

like image 458
stefanzweig Avatar asked Jun 13 '10 12:06

stefanzweig


2 Answers

For most of the problems keyword expansion solves it creates a whole heap more; isn't recommended in Mercurial CVS/RCS-like Keyword Substitution - Why You Don't Need It however it is documented how to do it with expansions if you really need to.

I'm not the only one to advise against keyword expansion, although there are times it can be useful one really needs to think hard before doing it.

like image 171
Richard Harrison Avatar answered Nov 08 '22 14:11

Richard Harrison


Use the built-in keyword extension.

A couple of important things:

  1. ONLY add the specific files you need keyword expansion to the filename pattern in hgrc [keyword].
  2. The expansion is LOCAL. When your changeset is pushed to another repo, unless that repo also has the same keyword setup, keyword is NOT expanded.

I agree that it should be avoided whenever possible. When it is not possible to avoid is that you need to distribute a few selected files (for example, API headers) to other people (for example, API users), such that there's no way they can use hg to find out the version info.

like image 22
Geoffrey Zheng Avatar answered Nov 08 '22 14:11

Geoffrey Zheng