Mercurialでは、すべてではなく、一連のリビジョンのみのタグを表示する方法は?
-
12-10-2019 - |
質問
hg tags
常にすべてのタグを表示するので、特定の改訂とそのすべての先祖を指すタグのみを取得するにはどうすればよいですか?
現実世界のユースケースは、ローカルタグを使用して変更セットに機能(またはバグ修正)を指定する場合、特定の回転まで累積的な機能/バグを見つける必要があることです。
解決策の1つは、「-r」を追加するラッパーコマンドを追加することです。 tags
. 。では、それを実装する最良の方法は何ですか? Revsetsを使用して、すべての先祖Revを取得し、タグをフィルタリングしますか?
解決
これはトリックを行う必要があります(水銀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))"
重要な重要な重要なマイルストーンまたはその他の改訂にタグを保持します。
他のヒント
私があなたを正しく理解しているなら、あなたは次のようにしたいと思います
- 改訂を指定します
- ログをその変更のみにフィルタリングします +そのすべての祖先
- それらの変更セットにあるすべてのタグを抽出します
名前をタグ付けするために自分自身を制限できる場合は、それを行うことができます。
hg log -r "ancestors(HASH)" --template "{tags}"
所属していません StackOverflow