8

最近、Java プロジェクトのバージョン管理に mercurial を使い始めました。プログラムを実行すると、特定の出力を生成するために使用した入力パラメーターが特定のファイルに書き込まれます。その出力ファイルにも、現在の Mercurial 変更セット番号 (私のプログラムのバージョンを示す) を追加できればいいのですが。

Windowsでこれを行う最も簡単な方法は何ですか? コマンドの最初の行の出力を取得する単純な Java パーサーを作成することもできますhg log -l 1 が、もっと簡単な方法 (つまり、コード行を少なくする方法) があるのではないでしょうか?

4

5 に答える 5

10

むしろ使えますhg identify

hg idソースがコミットされ、パッケージ化された (jar) バージョンのアプリケーションを生成するときに、パッケージ化ステップ中に行う必要があります。
そのステップで、そのような情報を含む version.txt ファイルを生成できます。

$ MY_VERSION=$(hg id)
$ echo $MY_VERSION
53efa13dec6f+ tip

(たとえば、Python の「ビルド ID」を参照)

于 2010-05-10T20:08:22.617 に答える
7

あなたは Java プロジェクトに参加しているので、これはあなたに関係があるかもしれません。この Ant ターゲットを使用して、Tomcat Manager ページのアプリケーション リストにバージョン情報 (Mercurial 変更セット ID) を表示します。web.xml のdisplay-name xml 要素内に変更セット ID を配置するだけです。

<target name="build.release">
    <exec executable="/usr/local/bin/hg" outputproperty="scm.version.tag.id">
        <arg value="id"/>
        <arg value="-i"/>
    </exec>
    <filter token="build.version.tag" value="${scm.version.tag.id}" />
    <copy file="${web.home}/WEB-INF/web.xml" todir="${build.home}" filtering="true" />
</target>

web.xml 内では、次のように、display-name xml 要素にトークンがあります。

<display-name>My Webapp @build.version.tag@</display-name>
于 2010-05-12T10:51:46.937 に答える
2

Mercurial 開発者の見解は次のとおりです。キーワード置換 - なぜ必要ないのか

于 2010-05-10T22:20:26.697 に答える
2

Mercurial には、キーワード展開用の拡張機能があります。手順と警告については、 KeywordExtensionを参照してください。

于 2011-03-09T22:03:02.843 に答える