Mercurial:以用户友好的方式显示文件的确切修订版数量?

时间:2011-12-16 17:41:55

标签: mercurial identifier revisions

当我使用Subversion作为构建过程的一部分时,我会运行'svn info'并捕获唯一的ID号并将其回显到头文件以供其他程序包含。这使得用户可以轻松地说,例如,“我正在运行build 456”并且给出了数字456,我可以始终交叉引用他们正在运行的内容。

我正在试图弄清楚如何用Mercurial实现同样的目标。 'hg summary'显示整数id以及hex哈希码。根据我的阅读,整数id对于不同的人可能是不同的。我假设哈希码是唯一的,但它不是非常用户友好。

hg哈希码是否是识别Mercurial中特定文件版本的唯一唯一方式?

谢谢你, 佛瑞德

2 个答案:

答案 0 :(得分:3)

是的,这是唯一识别变更集的唯一方法。

文档中的更多详细信息:ChangeSetChangeSetID

如果你想使用整数,我会看到两种可能的解决方案,具体取决于你的构建过程。

  1. 如果构建总是发生在同一台机器上(即:相同的存储库),则可以使用整数id,因为它永远不会在特定仓库中更改(除非您进行历史记录重写)
  2. 如果特定版本的构建仅发生一次,则可以使用每次在构建脚本中递增的变量。

答案 1 :(得分:1)

hg id命令将为您提供所需的变更集。您也可以向命令添加一些选项,但最有用和永久的部分是变更集ID

对于同一个回购

>hg id -nibt
6c4d15d8cfbd 841 default tip

>hg id
6c4d15d8cfbd tip

您还可以考虑一些支持模板输出的命令,并结合模板关键字的好输出混合:hg help templating

已经提到的repo的例子

>hg log --template "{rev}:{node|short}-{latesttag}+{latesttagdistance}" -r tip
841:6c4d15d8cfbd-1.3+3