3

ビルド プロセスの一部として Subversion を使用していたときは、'svn info' を実行して一意の ID 番号を取得し、それをヘッダー ファイルにエコーして他のプログラムに含めていました。これにより、ユーザーはたとえば「ビルド 456 を実行しています」と簡単に言うことができ、456 という数字があれば、実行しているものをいつでも正確に相互参照することができました。

Mercurial で同じことを達成する方法を見つけようとしています。「hg summary」は、整数 ID と 16 進ハッシュ コードを表示します。私が読んでいたものから、整数IDは人によって異なる可能性があります。ハッシュコードはユニークだと思いますが、あまりユーザーフレンドリーではありません。

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

ありがとう、フレッド

4

2 に答える 2

3

はい、変更セットを一意に識別する唯一の方法です。

ドキュメントの詳細: ChangeSetおよびChangeSetID

整数を使用する場合は、ビルド プロセスに応じて 2 つの解決策が考えられます。

  1. ビルドが常に同じマシン (つまり、同じリポジトリ) で行われる場合、整数 ID を使用できます。これは、特定のリポジトリでは変更されないためです (履歴の書き換えを行う場合を除く)。
  2. 特定のバージョンのビルドが 1 回だけ発生する場合は、ビルド スクリプトで毎回インクリメントする変数を使用できます。
于 2011-12-16T18:11:04.753 に答える
1

hg idコマンドは、必要な変更セットを提供します。コマンドにいくつかのオプションを追加することもできますが、最も便利で永続的な部分は変更セット ID です。

同じレポの場合

>hg id -nibt
6c4d15d8cfbd 841 default tip

>hg id
6c4d15d8cfbd tip

出力のテンプレート化をサポートするいくつかのコマンドについて考えて、テンプレートとキーワードの組み合わせからの素敵な出力を組み合わせることもできます。hg help templating

前述のレポの例

>hg log --template "{rev}:{node|short}-{latesttag}+{latesttagdistance}" -r tip
841:6c4d15d8cfbd-1.3+3
于 2011-12-16T23:50:21.687 に答える