How to expand some version keywords in Mercurial?

1.8k Views Asked by At

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.

2

There are 2 best solutions below

0
On BEST ANSWER

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.

0
On

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.