5

CVS では、ファイルのチェックアウト時に展開されるキーワードをコードで使用できます。$GlobalRev$キーワードで CVS が持っているグローバル リビジョンを表示したいと思います。

Subversion には$Rev$コマンドがありますが、ファイルが変更された最新のリビジョンしか表示されません。1.5および1.6 nightlysvnversionには、現在のところドキュメントがまったくないコマンドがあることを私は知っています。

TortoiseSVN でこれを行う方法を知りたいです。

4

4 に答える 4

3

CVSと同じものを使用するオプションはないと思います。少なくとも、必要なときに見つけることができませんでした。

代わりに、TortoiseSVNを使用SubWCRev.exeして、文字列を含むテンプレートファイルを$WCREV$現在のリビジョン番号のファイルに変換します。

于 2009-05-07T09:32:45.800 に答える
3

svnversion は引き続き利用可能で、1.5 で文書化されています

svnversion は、作業コピーのリビジョンの混合を要約するためのプログラムです。結果のリビジョン番号またはリビジョン範囲は、標準出力に書き込まれます。

これを使用して、チェックアウト後に作業コピーのリビジョンを取得します。KeywordExpansionのドキュメントには、その使用方法が説明されています。

于 2009-05-07T12:25:34.967 に答える
2

私の2セント:

私は現在、Web ベースの Java アプリケーションに取り組んでいます。コマンドラインのサブバージョン実行可能ファイルにアクセスできないビルドサーバー ( Hudson ) があります。代わりに、ソースをプルしてアプリをビルドする前にリポジトリにアクセスできるように、純粋な Java Subversion ライブラリが同梱されています。

ここで、アプリのホームページにグローバル リビジョン番号を含めるビルド プロセスが必要になりました (画面の右下隅を見ると、StackOverflow とほとんど同じです)。

残念ながら、Subversion と Ant の間には適切な統合がありません。最良のものであるSVNAntは、コマンド ライン svn.exe を使用することをより対象としており、実行するのにかなりの問題がありました。

最終的に、Subversion アクセス用の純粋な Java ライブラリであるSVNKitを使用してビルド スクリプトを微調整し、リビジョン番号を確認してファイルに挿入するのに 2 時間かかりました。

個人的には、変数を作成することの何がそんなに難しいのかわかりません。たとえば、$GlobalRev$各ファイルに挿入するのと同じように、$Id$または$Rev$

于 2009-06-10T14:15:32.933 に答える
1

上記のご指摘、了解いたしました。しかし、ある場合にはglobalrevが役立つようです...

実行中のすべての実行可能ファイルに最後のビルドのバージョンを持たせたい場合。

サンプルとして、versionning.propriety ファイルにアプリケーションのタイトルを 1 つ入れれば、バージョン番号を追加できます。

そのため、テスターまたはユーザーが問題を指摘するとき、彼らはその数をリリースと比較して、機能が存在するかどうかを確認できません。この変数 $GlobalRev$ は小さなコンテキストで使用されますが、役に立つ可能性があります。

よろしく

于 2009-07-10T22:32:36.277 に答える