2011-12-16 30 views
3

當我使用Subversion作爲構建過程的一部分時,我會運行'svn info'並捕獲唯一的ID號碼並將其回顯到頭文件以供其他程序包含。這讓用戶很容易說出例如'我正在運行內部版本456',並且考慮到我始終可以參考他們正在運行的內容的數字456。Mercurial:用戶友好的方式來顯示文件的確切版本號?

我想弄清楚如何用Mercurial實現同樣的事情。 'hg summary'顯示一個整數id以及十六進制哈希碼。從我讀的整數ID可能會因不同的人而不同。我假設散列碼是獨一無二的,但它不是非常用戶友好的。

hg散列碼是識別Mercurial中特定版本文件的唯一唯一方式嗎?

謝謝 弗雷德

回答

3

是的,它是唯一標識一個變更的唯一途徑。

的文檔中的更多細節:ChangeSetChangeSetID

如果你想使用一個整數,我看這取決於你的構建過程中的兩個可能的解決方案。

  1. 如果構建總是在同一臺機器上發生的(即:同一個版本庫),你可以使用一個整數id因爲它從來沒有在一個特定的回購改變(除非你做歷史重寫)
  2. 如果構建某個特定版本只會發生一次,您可以使用您在構建腳本中每次增加的變量。
+0

聽起來像最安全的做法總是使用散列,我不能顧arantee builds只能在一臺機器上完成。謝謝。 – 2011-12-16 19:03:41

1

hg id命令會給你需要的變更集。您可以添加someoptions也命令,但最有用的和永久的部分變更ID

出於同樣的回購

>hg id -nibt 
6c4d15d8cfbd 841 default tip 

>hg id 
6c4d15d8cfbd tip 

你也可以思考一些命令,支持輸出的模板,並結合很好的輸出從模板的關鍵字組合:hg help templating

對於已經提到的回購例

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