132

Mercurialで現在のリビジョンハッシュを抽出するより良い方法はありますか?

hg log -l1|grep changeset|cut -d: -f3

私のwebappデプロイメントスクリプトの一部は、アップロードされたアプリのtarballに固有のリビジョンハッシュを「タグ付け」します。

4

8 に答える 8

207

試す:

hg id -i

例:

$ hg id -i
adc56745e928
于 2010-03-21T04:25:51.537 に答える
44
hg --debug id -i

これにより、長いハッシュが出力され、コミットされていない変更がある場合はプラスになります。

于 2012-02-15T20:48:11.987 に答える
24

親コマンドで--templateを使用できます。これを使用して、長いハッシュを取得します。

hg parent --template '{node}'
于 2012-02-16T20:16:53.487 に答える
17

回答とその回答を要約すると、これが現在のバージョンの一意の(短い形式ではない)識別子を印刷するための最良の方法のようです。

hg log -l 1 --template '{node}\n' -r .
于 2013-08-02T12:29:09.203 に答える
9
hg log -l 1 --template '{node|short}\n'

ドキュメント、段落「テンプレートの基本」および以下を参照してください。

于 2010-03-21T03:26:58.307 に答える
5

--templateの存在により、その簡潔さが要求される場合にのみリビジョン情報を出力できる、最も具体的な非推奨コマンド:(質問で示されているように):

hg log -l 1 -b . -T '{rev}:{node|short}\n'

または、一意の長い形式のハッシュの場合:

hg log -l 1 -r . -T '{node}\n'

-b .or (ブランチ名のbranch(.)ドット)は、現在の作業ディレクトリブランチ-r .意味し、現在の作業ディレクトリのリビジョンを意味します。これは、およびに記載されています。hg help revsetshg help revisions

コミットされていないマージがある場合、.(ドット)はワーキンググループの2つの親の最初の親のみを表示することに注意してください。

于 2015-11-26T14:25:06.420 に答える
3

他の人が指摘しているように、を使用しないでくださいlog -l

出力が制限され、テンプレートをサポートしていないものhg log -r .を使用するのではなく、詳細情報を取得するために使用します。のような小さなエイリアスを作成して使用hg idすることもできます。ハッシュのみが必要な場合は、を使用します。here = log -r .hg herehg log -r . --template '{node}\n'

于 2016-08-01T09:27:49.243 に答える
3

TortoiseHgを使用している場合は、Workbenchでリビジョン行を右クリックし、[ハッシュのコピー]を選択します(ドキュメントに従って)。

ここに画像の説明を入力してください

于 2018-07-24T16:32:36.173 に答える