2011-05-15 48 views
16

我在大多數項目中使用Mercurial,並且在部署網站時,我只需在生產服務器上執行hg clone,然後在那裏執行。我想要做的是在我的網站頁腳中添加一小段代碼,它顯示當前版本號(十進制和十六進制)以及當前分支。堆棧溢出和BitBucket都做了我正在尋找的變化。如何在PHP頁面上顯示hg存儲庫的當前工作副本版本

我簡單地嘗試瞭解析exec('hg summary')的輸出,但是我想知道是否有更好的方法來解決這個問題。有沒有更好的方法,或者我的最佳選擇是exec

回答

21

您可以使用post-update掛鉤將信息放入文件中。在該網站的.hg/hgrc你會把這樣的事情:

[hooks] 
post-update = hg id --rev > VERSION ; hg id --id >> VERSION 

那麼你可以從你的php中訪問該文件。您仍然需要確保運行hg pull -u的用戶信任hgrc文件,並且VERSION文件具有權限,以便Web服務器可以讀取它。

+7

修改的一個很好的描述可以通過像'hg log -r。 - 模板「v {latesttag} - {latesttagdistance} - {node | short} \ n」'。這會返回一個像「v1.0.0-2-5e51254a」這樣的字符串(也就是說,在標籤爲'1.0.0'後提交了變更集ID爲'5e51254a'的字符串。 – 2011-05-15 02:26:40

+0

好的答案 - 我喜歡它。不依賴'exec',easy足夠執行。謝謝! – 2011-05-15 03:50:03

+0

'hg id -r'期待一個參數,我想你的意思是'-n'? – 2012-03-13 23:49:49

相關問題