5

アプリの新しいバージョンをライブでプッシュするときに、リリースリビジョン番号を表示する方法を教えてください。

ファイルで使用$Rev$して最新のリビジョンを取得できますが、ファイルを更新した後でのみ使用できます。

リポジトリ/ディレクトリ内のファイルを変更するたびに1つのファイルの文字列を更新したい場合はどうなりますか?

方法はありますか?

4

6 に答える 6

8

svnversionこれを行う最良の方法は、またはsvn infoを使用してリビジョン番号を判別し、それをファイルに挿入するリリースのビルドスクリプトを用意することです。次のようなスクリプトがあると常に役立ちます。

  1. ソースのクリーンコピーを空のディレクトリにチェックアウトします
  2. svnversionビルド番号を計算するために使用するか、それに類似したもの
  3. ソースを製品にコンパイルします
  4. 製品のアーカイブ(zipまたはtarballなど)を作成します
  5. クリーンアップ:アーカイブ以外のすべてを削除します

次に、簡単に識別できるバージョンのリリースを作成するためのワンステッププロセスがあります。また、ソース管理にチェックインされなかった変更が含まれている可能性のある、自分の作業コピーから誰かにビルドを与えることを回避するのにも役立ちます。

于 2008-09-20T10:49:43.037 に答える
3

TortoiseSVNには、 SubWCRev.exeという名前の簡単なツールがあります。パスからリビジョンを取得し、独自のテンプレートからファイルを作成します。ビルド前のコマンドとして使用できます。

于 2008-09-20T13:58:22.130 に答える
2

フックを使おうとしましたか?それらはサーバー側でのみ機能しますが、うまくいく可能性があります。それ以外の場合は、キーワードが適切でない場合は、スクリプトを呼び出してリビジョンを更新します。

于 2008-09-20T10:32:34.187 に答える
2

リリースのビルド/デプロイの一部としてファイルを自動的に更新します。

于 2008-09-20T10:37:51.957 に答える
1

私がこれを行う理由があった1つのプロジェクトで、私はだましsvnversionました。それは、起動時にそれ自体を呼び出します。

于 2008-09-20T10:38:04.220 に答える
1

alexanderが言ったように、1 つの方法は、ビルド プロセスの一部としてリビジョンを更新することです。

これを行う 1 つの方法は、 buildbotなどのツールを使用して、バージョン管理チェックインからトリガーされた自動ビルド プロセスからリリース ビルドを取得することです。

サブバージョン リポジトリでポストフック スクリプトを使用して自動ビルドをトリガーするシナリオが考えられます。これにより、ビルドボットが最後にチェックインされたリビジョンに更新されます。ビルド スクリプト (例: Makefile) は、'svnversion' (または 'svn info' と grep) を使用してリポジトリ リビジョンを読み取り、ビルドが行われる前にそれをヘッダー ファイルに書き込みます。

ビルドが成功したら、リリース バージョンに関する適切なコメントを付けて、このファイルをリポジトリに自動的にチェックインします。

于 2008-09-20T10:56:32.397 に答える