2011-12-16 9 views
3

ビルドプロセスの一環としてSubversionを使用していたときに、「svn info」を実行して一意のID番号を取得し、それを他のプログラムがインクルードするためにヘッダファイルにエコーします。これにより、ユーザーは「私はビルド456を実行しています」と言うことが容易になり、456という数字を指定することで、実行中のものを常に正確に参照することができました。Mercurial:ファイルの正確なリビジョン番号を表示するユーザーフレンドリーな方法?

私はMercurialで同じことを達成する方法を理解しようとしています。 'hg summary'は整数IDと16進ハッシュコードを表示します。私が読んでいたものから、整数idは異なる人々のために異なっているかもしれません。私は、ハッシュコードが一意であると仮定していますが、あまりユーザーフレンドリーではありません。

hgハッシュコードは、Mercurialの特定のバージョンのファイルを識別するユニークな方法ですか?

は、はい、それは一意にチェンジセットを識別するための唯一の方法である、 フレッド

答えて

3

、ありがとうございました。ドキュメントの

詳細:あなたは整数を使用したい場合はChangeSetChangeSetID

、私はあなたのビルドプロセスに応じて2つの可能な解決策を参照してください。

  1. ビルドが常に同じマシン(つまり:同じリポジトリ)に発生した場合、それは(あなたが書き換え歴史を行う場合を除く)、特定のレポに変わることはありませんので、あなたは整数IDを使用することができますが
  2. 構築する場合は、ビルドスクリプトで毎回増分する変数を使用することができます。
+0

はサウンドのために、私はGUできない:テンプレートのキーワードのミックスからaranteeビルドは1台のマシンでのみ実行されます。ありがとう。 –

+0

OSの違い、IDE /ツールの違い、環境の違いなどの違いを除外するために、ビルドを行っているマシンが1台あるべきですが、これはあなたの質問とこの回答とは正反対です。 –

+1

@Lasseもしあなたがいろいろなプラットフォーム用にビルドしているのであれば、これは必ずしも可能ではありません。ほとんどの場合、プラットフォームごとに1台のマシンがあります。 – krtek

1

hg idコマンドは、必要なチェンジセットを与えます。また、コマンドするsomeoptionsを追加することができますが、最も有用と永続的な部分は同じレポ

>hg id -nibt 
6c4d15d8cfbd 841 default tip 

>hg id 
6c4d15d8cfbd tip 

あなたは、出力のテンプレートをサポートするいくつかのコマンド、考え、そして素敵な出力を組み合わせることができますについてのチェンジID

です例

hg help templating

それは常にハッシュを使用するのが最も安全だと同様に、既に述べたレポ

>hg log --template "{rev}:{node|short}-{latesttag}+{latesttagdistance}" -r tip 
841:6c4d15d8cfbd-1.3+3 
関連する問題