2011-09-17 45 views
7

我一直在閱讀有關mercurial標籤。我可以看到,通常我們會標記變更集以標記發佈點,並且這些標記也是修訂版控制的。爲什麼單獨的標籤文件在Mercurial

但我真的不明白有一個.hgtags文件的想法。這個文件的目的是什麼?

回答

5

擁有.hgtags文件允許更改.hgtags文件使用與記錄所有其他文件更改相同的格式進行記錄。它還允許以與用於傳輸文件更改相同的格式在標籤庫之間傳輸標籤。

這允許Mercurial實現一個系統來存儲對目錄的更改,以及一個協議用於將一堆更改傳輸到目錄,並在傳輸文件更改時自動處理分支和標記信息。

它還允許人們通過查看.hgtags文件的歷史記錄來查看項目標籤的歷史記錄。

+2

缺點包括'hg clone -r '的混淆,以及在兩個單獨的標籤添加到兩個單獨的分支上時,在'.hgtags'文件中解決衝突的不必要的要求。 – Jesse

+0

+1,同樣的原則也適用於'.hgignore'。 –

+0

雖然我理解了這些論點,但它看起來也很像「因爲這是一種權宜之計」。這也是一個承認,標籤不是真正的汞的一流的一部分。 –

0

兩個相關存儲庫中的標籤名稱可能有衝突。

E.G.標記A可以在一個回購點指向變更集ID X,而在另一個回購點中,相同標籤可指向變更集ID Y.在合併期間,這個衝突必須解決。

合併過程中的衝突通過檢查文件和相關的修改來解決。

因此,標籤必須存儲在回購的普通文件中。

0

實際上我沒有看到使用單獨的標籤文件。使用'log'命令可以很好地查看版本庫歷史記錄(包括標籤)。擁有標籤文件也會違反一條重要規則:嚴格與版本控制系統相關的更改不應以任何方式更改存儲庫。

相關問題