4

hg tags常にすべてのタグが表示されますが、特定のリビジョンとそのすべての祖先を指すタグのみを取得するにはどうすればよいですか?

実際の使用例では、ローカル タグを使用して変更セットの機能 (またはバグ修正) を指定し、特定のリビジョンまでの累積機能/バグを見つける必要があります。

1 つの解決策は、「-r」を に追加するラッパー コマンドを追加することtagsです。それでは、それを実装する最良の方法は何ですか?revsets を使用してすべての祖先の rev を取得し、タグをフィルター処理しますか?

4

2 に答える 2

5

これでうまくいくはずです(mercurial 1.7が必要です):

hg log -r "ancestors(<rev>) and tag()"

ここ<rev>で、はハッシュまたはローカルリビジョン番号です。ただし、すべてのバグ修正と機能にタグを付けるのはやり過ぎのようです。

タグを付ける代わりに、コミットメッセージに「bugfix:xyz」または「feature:abc」を入れるという規則に従うことができます。次に、次のようなすべてのバグ修正と機能を抽出できます。

hg log -r "ancestors(<rev>) and (keyword(bugfix) or keyword(feature))"

重要なマイルストーンまたは特別な意味を持つその他のリビジョンのタグを保持します。

于 2010-12-23T21:34:12.770 に答える
3

私があなたのことを正しく理解している場合、あなたは次のことを望んでいます:

  • リビジョンを指定
  • その変更セット + そのすべての祖先のみにログをフィルタリングします
  • それらの変更セットにあるすべてのタグを抽出します

タグ名に制限できる場合は、それを行うことができます。

hg log -r "ancestors(HASH)" --template "{tags}"
于 2010-12-23T19:25:25.077 に答える