假設我在Mercurial中有50多個功能分支。如果我這樣做:Mercurial中的標籤如何自動傳播到所有分支?
hg tag some-tag
在其中一個功能分支中,它似乎傳播到所有分支。無論我在哪個功能分支中,hg tags
都將顯示所有標籤。這一切都很好。但是,如果我這樣做hg log
,它會告訴我,含變化.hgtags
的變更發生在一個特定的分支:
changeset: 4:ea48c727fbcd
branch: feat1
tag: tip
user: Daniel <[email protected]>
date: Mon Dec 21 20:15:11 2015 +0100
files: .hgtags
description:
Added tag feat-1.0 for changeset 3c81a17d4b31
如何水銀保持.hgtags
同步所有分支機構?我讀過Mercurial Tag Design,但沒有提到任何細節。
我問的原因是我們在工作時使用Mercurial的Rhodecode,並且這種傳播在重負載下似乎顯着落後。
由於我可以看到.hgtags
文件中的最新標籤,但hg tags
未列出最新的標籤,所以此延遲真的很煩人。做另一個標籤有時可以解決這個問題(也許這是Rhodecode中的一個錯誤),但我想知道它是如何工作的,以便更好地理解底層機制。
什麼版本的,你運行? Mercurial 3.4和3.5對標籤緩存有一些非常顯着的性能改進(3.3版有一個性能迴歸)。 –
無視我之前的問題,我誤解了你的意思是「滯後」。如果'汞tags'缺少的東西是在你當前'.hgtags'(和標籤沒有別的分支或另一個版本刪除 - 這是怎麼了,你有時可以合法看到'.hgtags'標籤,但而不是'hg tags'),那就意味着有一個bug。僅供參考,Mercurial使用緩存來避免涉及相當昂貴的計算,並在新提交進行時更新;如果存在缺陷,它很可能是標籤緩存的問題。 –