1

Ant 拡張機能の場合、ローカルの作業コピーで最大の svnrevision 番号を取得する Java クラスがあります。このクラスはすでに SVN 1.6 までサポートしていますが、ローカルの wc.db を使用して SVN 1.7 をサポートするように変更する必要があります。この件についてしばらくグーグルで検索しましたが、これを解決するための明確なヒントが見つかりません。

svnversion バイナリが行うことと同等の、SVN 1.7 作業コピーからリビジョン番号を取得する方法を示すサンプル コードはありますか?

乾杯ピーター

4

3 に答える 3

1

私が知っている唯一のJavaSVNAPIであるSVNKitは、Subversion1.6.5のみをサポートします。しかし、おそらくあなたが探している機能はすでに機能していますか?試してみる価値があります、imo。

于 2012-01-31T12:42:09.860 に答える
1

最新のリビジョン番号 IMHO を取得するために subversion メタ情報を解析することはお勧めできません。

実際には、リビジョン番号を取得する別の標準的な方法があります。svn:keywords各コミット後にファイルの現在のリビジョン番号を取得するために使用できます。$Revision$リビジョン置換のプロパティがあります。次の文字列をファイルに入れ、このファイルをバージョン管理下に置くだけです。

$Revision$

Ant でリビジョン プロパティを使用する必要がある場合は、次の内容を version.properties ファイルに追加することをお勧めします。

revision=$Revision$

次にbuild.xmlwith ステートメントにインクルードします。

<property file="build.properties"/>

そして、ビルド スクリプトでリビジョン番号を使用できるようになります。

<echo message="Deploying revision ${revision}" />

ファイル内で実際の値を置き換えるには、svn:keywordsSubversion プロパティの使用を明示的に有効にする必要があることにも注意してください。$Revision$リビジョン番号の値を取得するために使用する場合はversion.properties、次のコマンドを実行する必要があります。

svn propset svn:keywords Revision version.properties

それがあなたのケースでうまくいくかどうかはわかりませんが、ビルドプロセス中にリビジョン番号を使用したい場合、それが私のプロジェクトで最も頻繁に使用するアプローチです。このアプローチは、作業コピーのメタ情報からリビジョン番号を取得するよりも確実に優れています。

于 2012-01-31T13:42:04.453 に答える
0

SVNKit は単純すぎましたか: SVNKit アルファ版は既に SVN 1.7作業コピー形式をサポートしています...だから試してみてください...

于 2012-01-31T13:53:50.813 に答える