回答
正如評論和其他答案所提到的,依靠類似CVS的自動擴展標籤並不是一個好主意。特別是因爲你可以在任何時候提取你需要的任何元信息,之後幾乎可以提取任何粒度。
但是,如果你真的需要它(因爲你的老闆這麼說),最接近你可以通過使用與mercurial捆綁在一起的keyword extension。
下面是關於關鍵字擴展的「爲什麼你不需要它」頁面:http://mercurial.selenic.com/wiki/KeywordPlan#head-2007fad6f31bf6f1f1b5c3d5b02e5c6225de3ec5我很確定這是從Mercurial的主要作者的評論中得出的,誰積極建議不要延期。 –
這在Stackoverflow上已經被問到很多了,簡短的回答是:你不應該這樣做。
你不想要一個隨每次提交而變化的文件合併一場噩夢。
更好的選擇是:
- 寫的版本字符串到一個文件上
update
- 用戶在編譯/部署腳本運行$(HG ID),並將它放入構建在那個時候
相信我,文件中的修訂字符串是CVS/SVN思想。它在git/Mercurial世界中沒有地位。
我不同意,它的確如此。即使在SVN中,你也必須明確地通過一個屬性來啓用它。這與CVS完全不同,必須通過'cvs add -kb'或回購配置明確指出哪些文件是「二進制」的。 – 0xC0000022L
CVS和svn都可以讓工作目錄中的某些文件在不同版本中籤出。我可以做'cvs co -r 1.1 a_specific_file',所以在cvs(和svn)中有一個「這個該死的東西是什麼版本」是合理的。在Mercurial和git中,你不能在一個版本中有一些文件,在另一個版本中不能有一些文件(並且仍然沒有任何提交/清除狀態),所以'hg id'總是足以知道_every_文件中的內容。只需讓您的構建/部署系統更智能一點,而不是污染源文件。 –
如何將版本添加到更新的文件中?有沒有辦法使它自動化?我正在使用SourceTree。 – felwithe
是的,這是可能的,但你需要啓用它。你要求的基本上是keyword extension。首次啓用時請小心(請閱讀關於kwshrink
,kwexpand
的部分),因爲您不希望實際展開的關鍵字成爲修訂歷史記錄的一部分。
我最喜歡的方式是使用hgversioninfo plugin。 它在「hg commit」,「hg update」等文件上生成一個version.py文件。
- 1. 如何嵌入版本信息使用mercurial和maven(和svn)
- 2. 如何在多個Python版本中使用一個源代碼?
- 3. 添加SVN版本信息源代碼(CMake的)
- 4. 如何自動將版本信息嵌入到我的Java應用程序中?
- 5. 如何查看Android源代碼版本?
- 6. 將版本號插入源代碼
- 7. 在NSAttributedString中嵌入信息
- 8. Github - 如何在您的源代碼中包含信息
- 9. 哪裏可以找到Android平臺上的源代碼中的版本信息
- 10. WSO2IS IS源代碼版本
- 11. 如何將版本信息嵌入到Windows二進制文件中?
- 12. 替換版本信息資源
- 13. 使用aws codebuild構建代碼。源代碼版本語法
- 14. 如何在編譯時將正確的版本信息注入資源?
- 15. 如何使用TortoiseHg(Mercurial)下載代碼
- 16. 如何在Android OS中定製iptable源代碼版本4.0.4
- 17. 如何強制Mercurial客戶端使用特定版本的Mercurial?
- 18. 從代碼中設置Delphi 7項目「版本信息」?
- 19. 如何在podfile中使用源代碼?
- 20. 如何在Perl中嵌入Perl代碼?
- 21. 如何在PHP代碼中嵌入Javascript?
- 22. 源代碼控制版本和引用
- 23. 如何使用清單中的版本信息
- 24. javascript代碼嵌入鏈接與其詳細信息,如在Facebook中
- 25. 通過元數據嵌入版本信息?
- 26. 如何使用TFS腳本的版本信息添加標籤
- 27. 如何使用Windows窗體嵌入資源作爲WPF mediaelement的源代碼?
- 28. Twitter信息源不符合代碼?
- 29. 如何從資源獲取版本信息?
- 30. 使用版本代碼覆蓋代碼
作者在寫入文件時基本上是固定的,不是嗎?除非你想讓它成爲編輯文件的最後一個人。儘管如此,這還是一個小問題。通常,DVCS(甚至是一些集中的VCS,如ClearCase)可避免將版本元數據放入文件中。因此,例如,您無法輕鬆獲取影響嵌入到文件中的文件的最後一個提交編號,也無法確定發生該事件的日期。我仍然使用一個古老的VCS(更確切地說是RCS),因爲我重視那個能力,並且我的發佈系統也是圍繞它而建立的。因爲這個,我沒有切換到Git或Mercurial或SVN。 –
另請參閱我的[討論](http://stackoverflow.com/questions/645008/what-are-the-basic-clearcase-concepts-every-developer-should-know/645424#645424)(或者是一個謾罵)關於'嵌入式版本號 - 好還是壞'。 –
可能重複的[文件歷史記錄:在源文件或讓scm處理它?](http://stackoverflow.com/questions/929824/file-history-in-the-source-or-let-scm-handle-it ) – ChrisF