2009-09-12 6 views
5

私はちょっとプライベートなGoogleコードプロジェクトを持っています。 SCMの場合、私はMercurialを使用します。そしてローカルビルドのために、私はナントを使いたいです。そこで、基本的ナンシーからの水銀の使用方法

    私は私が組み立てることができるように何とかリポジトリのリビジョン番号を取得したいと思いNAntのタスク
  1. を使用して、既知のMercurialリポジトリからの私のソースファイルをダウンロードしたいと思います
  2. 小さなアセンブリバージョン番号

ビルドスクリプトは、継続的な統合には使用されませんが、夜間ビルドと本番ビルドのみに使用されます。ヘルプ

答えて

4

ため

おかげで私はNAntのを知らないが、(実際の)アリで、私たちはHGのバイナリを呼び出すために<exec>タスクを使用します。清潔に応じて、cloneまたはpullを起動してhg id -iを実行すると、リビジョン番号をきれいに取得できます。もう一つ考慮すべき点は、遠隔のウェブインターフェース上のアーカイブリンク(本質的にはHTTP経由のhgアーカイブコマンド)を使用し、簡単な一貫性のあるリンクを持つtipアーカイブをプルダウンするwget(同等のnantタスクではない)アーカイブのhg_archival.txtファイルの中からリビジョンIDを取得できます。あなたはMercurialのバイナリにオフに呼び出すのではなく、NANTコードを探しているので

+0

これはうまくいくが、同時にスクリプトのエンドユーザーがローカルに水銀をインストールしなければならないことを意味する。 私は正に、いくつかの拡張子が利用可能であることを望んでいました。 – Dejan

+0

現在、水銀線プロトコルを話す非水銀コードは見つからないと思うし、それはPythonです。だからあなたはIronPythonでそれを実行しようとすることができますが、その時点であなたは水銀のインストールと同じくらい多くの作業を話しています。私は別の答えで私のベースのsolnを書き直します。 –

2

、私はこのようなあなたのレポの先端をプルダウンするナントの<get>タスクを使用してちょうどお勧め:

<get src="http://bitbucket.org/tortoisehg/stable/get/tip.zip" dest="latest.zip" /> 
<unzip zipfile="latest.zip" todir="latest"/> 

と内部このようなものが含まれている.hg_archival.txtファイルがあるはずです:あなたは、ビルドをブランディングでの使用に適したhashIdを得ることができ、そこから

repo: bac32db38e52fd49acb62b94730a55f4f4b0cdee 
node: 61482ea34fd0b9650e738eaebb2fe352c2f6315a 

残念ながら、Googleのアーカイブダウンロードリンクは見つけられませんが、水銀(およびbitbucket)ウェブインターフェイスではかなり標準的なので、どこかにいると思います。

0

これは最初に質問をした人には当てはまりませんでしたが、私は同様のことをする必要がありました...しかし、数字のリビジョンが必要でした(はい、番号はリポジトリ固有ですがスクリプトが使用されていたコンテキスト)。私はhg.exeを呼び出すことにも問題はありませんでした。どこでもhg.exeから実行できるからです。

私は最終的になってしまったNAntのスクリプトは、このた:

<exec program="hg.exe" output="CurrentMercurialRevision.txt"> 
    <arg value="id" /> 
    <arg value="-n" /> 
</exec> 
<loadfile file="CurrentMercurialRevision.txt" property="buildNumber" /> 

残念なことに、プロパティに直接読み込むためのNUnitで方法はありませんので、私は中間テキストを使用していましたロードファイルを使用してファイルに格納して処理します。 .hgignoreファイルに "CurrentMercurialRevision.txt"を追加しなければなりませんでしたが、Mercurialに精通していればおそらくすでにそれを推測していたでしょう。 ;-)

うまくいけば、これは誰かを助けるでしょう。

+1

私の質問のうちの1つを検索するとき、このスレッドに出くわしました。 "Mercurial" [ここ](http://msbuildhg.codeplex.com/)用に特別に書かれたクールなmsbuildコミュニティがあります。これを使用すると、このタスクに中間ファイルを使用する必要はありません。 –

関連する問題