1

SVNサーバーをセットアップしようとしています。さまざまなフレーバーのいくつかのリモートサーバー(Windows 2008およびLinux(ApacheおよびTomcat))にコードをプッシュする必要があります。

コードをプッシュするための最良のアプローチは何ですか?サーバー間の同期?SFTP?リモートサーバーからSVNエクスポートを呼び出しますか?これを起動するために、各リポジトリでのコミット後のアクション/イベントを考えています。マルチプラットフォームソリューションが鍵となります。

編集#1 svn exportが同期せず、削除されたファイルがリモートサーバーにそのまま残ることを学びました...

編集#2

  • これらのサーバーにプッシュ(またはプル)される多くのリポジトリーを考慮に入れる必要があります。
  • これらには、PHPまたはASP.Netプロジェクト(サイト/アプリケーション)が含まれていました

解決

  • 他のサーバーにHudsonをインストールしました
  • Webサーバー上の特定の場所にソースコードをチェックアウトする
  • ディレクトリを作業コピーに変更する特定のプロジェクトのジョブを作成し、svnupを呼び出します
  • ジョブURLでwgetを実行するコミット後のフック-hudson/job / name_of_job / build?delay = 0sec
4

2 に答える 2

0

svn update各リモートシステムで呼び出し、それらのシステムのそれぞれで作業コピーを使用するコミット後フックは、あなたが行くことができる1つのルートです(そしてFAQエントリになるのに十分一般的です)。

また、継続的インテグレーションサーバーを調べることもできます。特に、プッシュする必要のあるアイテムが、コンパイルとデプロイが必要なアプリケーションである場合(Tomcatの場合のように)。この場合、Subversionサーバーからプッシュするのではなく、CIサーバーがポーリングして変更を確認し、更新をプルしてから、コンパイル/テスト/デプロイスクリプトを実行し、結果を報告します。

于 2012-09-25T19:32:41.583 に答える
-1

svnsync

これは非常にうまく機能します。ほとんどのコミットで2回呼び出されるため、post-commitフックとpost-revprop-changeフックの両方に配置するように注意してください。また、リモートサーバーをsvnsyncユーザー以外のすべてのユーザーに対して読み取り専用にする必要があります。

これらのリポジトリを読み取り専用にすることもできますが、ライターをマスターリポジトリに自動的にプッシュバックするため、リモートをキャッシュとして使用できます。Svnsyncは、継続的なバックアップの作成にも優れています。

レッドブックのリポジトリレプリケーションセクションには、知っておくべきことがすべて記載されています。

于 2012-09-25T17:31:27.480 に答える