2

ローカルでコミットされたとき、またはキルンリポジトリにプッシュされたときに、チェンジセットに自動的にタグを付ける方法があるかどうかを知りたいです。

すべてのチェンジセットにバージョン/ビルド番号のタグを付けてほしい。バージョン/ビルド番号をデータベースに保存することを計画しており、スクリプトでデータベースからこの値を取得し、変更セットにタグを追加したいと考えています。スクリプトを自動的に呼び出して、これをコミット後のイベントとして、またはキルンリポジトリにプッシュされたときにプッシュ後のイベントとして実行することは可能ですか?

また、すべてのコミット/プッシュで自動タグ付けを実現するための他のアプローチも受け入れています。

4

2 に答える 2

8

チェンジセットごとにタグを作成するのではなく、次のいずれかを試してみませんか。

  • チェンジセットハッシュを識別子として使用しますか?
  • ログから生成された文字列を識別子として使用しますか(以下を参照)?

次のコマンドを使用して、ログから説明文字列を生成できます。

hg log -r 1.7.2 --template '{latesttag}-{latesttagdistance}-{node}\n'

結果は次の形式になります。

<latest tag>-<# changesets since latest tag>-<changeset hash>

たとえば、Mercurialリポジトリのローカルクローンでは、次のように生成されます。

1.7.2-2-5e51254ad4d4c80669f462e310b2677f2b3c54a7

これは、タグ1.7.2以降に2つのコミットがあり、現在のチェンジセットハッシュが5e51254aであることを示しています。

Mercurialでは、各タグが新しいチェンジセットを作成します。したがって、すべてのコミットにタグを付けると、リポジトリ内のチェンジセットの数が2倍になります。ホイールを再作成するのではなく、組み込みのツール(上記のとおり)を使用する必要があります。

于 2010-12-02T21:32:50.590 に答える
1

ローカルでコミットされたとき、またはキルンリポジトリにプッシュされたときに、チェンジセットに自動的にタグを付ける方法があるかどうかを知りたいです。

あなたはいつでもそれをするためにポストコミットフックを書くことができます。

すべてのチェンジセットにバージョン/ビルド番号のタグを付けてほしい。

タグは、コミット履歴の重要な瞬間を識別するのに役立ちます。それらの瞬間に、リリース1.0、リリース1.3などの製品開発に関連する意味のある名前を付けます。

変更セットごとにタグを作成する場合は、ノイズレベルを上げるだけです。重要なタグに関する情報をどこかに保持する必要があります。

変更セットに関するメタ情報としてタグを検討してください。それらのすべてが同じ重要性に値するわけではありません。それらのすべてがそのメタ情報を必要とするわけではありません。

タグを見ると、控えめに使用した場合にのみ意味のある履歴が得られます。

フックに

見る:

例:プッシュ、プル、またはアンバンドルによって変更グループが追加された後に実行します。自動ビルドをトリガーするために使用しました。

[hooks]
changegroup.yyyy = command 

同様に、コミット後、プッシュ後のフックがあります

[hooks]
post-<command> =  command
于 2010-12-02T21:33:19.567 に答える