5

次の状況の解決策を探しています。

Subversion を使用しており、チェックアウトを使用する開発環境の他に、本番環境にできるだけ近いテスト環境を用意しています。

そのため、SVN エクスポートを使用して環境が更新されるように設定しました。ただし、最新のリビジョンが必要なだけなので、どのリビジョンがエクスポートされたかはわかりません。

たとえば、生成されたファイルを追加して、どのリビジョンがエクスポートされたかを示すなど、このエクスポートを「マーク」する方法はありますか? (1 つのリリース サイクル内で複数回更新するため、タグをエクスポートしたくありません。)

4

3 に答える 3

3

できることの 1 つは、既知のリビジョンからエクスポートしていることを確認し、そのリビジョン番号をエクスポートのテキスト ファイルに書き込むことです。このsvnversionコマンドは、作業ディレクトリのリビジョン番号を教えてくれます。そのsvn updateため、最新バージョンを取得svn exportして展開場所に移動svnversionし、エクスポートと同じ場所にあるテキスト ファイルに出力をリダイレクトします。リビジョン番号は、誰かがそれ以降に新しいコードをコミットした場合でも、更新時のリビジョンになります。

もちろん、上記のプロセスをシェル スクリプトなどで自動化することもできます。

于 2009-06-10T11:54:40.643 に答える
2

svn info /path/to/repositoryエクスポートの直前(または直後)に実行できますが、変更が加えられていないことを確認するためにロックする必要があります。

または、コメントで説明されている手法を使用して、次のようなシェルスクリプトをパイプ処理します。

svn export /path/to/repository | grep ^Exported > revision.txt

また

svn export /path/to/repository | tail -l > revision.txt
于 2010-03-03T18:28:23.540 に答える
0

svn updateまたは、svn exportそのローカルコピーから実行することもできます。これの利点は、Subversionが「rsync」(または使用するアルゴリズム)を使用して、変更されたファイルのみを更新することです。次に、ローカルコピーからエクスポートし、帯域幅を節約し、ローカルチェックアウトですべてのリポジトリ情報を保持します。

チェックアウト用とエクスポート用の2つのディレクトリを作成し、2段階のプロセスで展開します。

svn update /path/to/repository checkout/project
svn export checkout/project export/project
于 2010-03-03T19:21:03.587 に答える