2015-09-17 37 views
5

是否可以僅在特定分支上列出標籤? (從優選命令行)如何列出某個Mercurial分支中的所有標籤?

例如:

$ hg branch test1 
... (make some commits) 
$ hg tag mytag_on_test1_branch 

$ hg branch test2 
... (make some commits) 
$ hg tag mytag_on_test2_branch 
... (make some commits) 
$ hg tag mytag_on_test2_branch_2 

現在hg tags回報:

$ hg tags 
tip        5:34603c3a4107 
mytag_on_test2_branch_2   4:72db17d2170c 
mytag_on_test2_branch    2:09aed50d8b95 
mytag_on_test1_branch    0:d43c48c0e1d8 

我只想看在分支 「test2的」 標籤,例如:

mytag_on_test2_branch_2   4:72db17d2170c 
mytag_on_test2_branch    2:09aed50d8b95 

這可能嗎?

回答

7

像往常一樣,答案在於正確使用版本集;它們是將修訂範圍限制在幾乎任何需求的有力工具。詳情請參閱hg help revsets

在你的情況下,我們也使用輸出模板只顯示標籤而不是這些修訂版的完整日誌輸出。因此,如果你需要的所有標籤爲THISBRANCH:

hg log --rev="branch(THISBRANCH) and tag()" --template="{tags}\n" 

樣品輸出廣泛標記回購

hgsubversion>hg log -r "branch(stable) and tag()" -T "{tags}\n" 
1.5.1 
1.6.1 
1.6.2 
1.6.3 
1.7 
1.8 
1.8.1 
1.8.2 
+0

謝謝!但是,這種解決方案似乎只輸出分支中的第一個標籤,而不是全部。任何想法如何解決這個問題? – johndodo

+0

它列出了屬於該分支的所有標籤。它確實排除了作爲祖先但不在同一分支中的標籤(例如,在THISBRANCH分支的分支中) – planetmaker

+0

我更新了這個例子 - 當我執行'hg log --rev =「分支(test2)和標籤()「--template =」{tags} \ n「'我只得到一個結果('mytag_on_test2_branch'),另一個('mytag_on_test2_branch_2')缺失。 – johndodo

相關問題