9

私たちのウェブショップにSubversionを紹介しています。チェックインしたファイルをFTP経由でサーバーにアップロードしたい(そして、Subversionに慣れてきたら、SFTP経由で)。ファイルは、テスト目的でリリース候補ページに送信されます。スクリプトを呼び出して、ファイルを本番環境に移動できます。

私の質問はこれです:Subversionを介してファイルをサーバーに転送するにはどうすればよいですか?ファイルがチェックインされたときに転送を行うスクリプトを追加できますか?

4

8 に答える 8

3

SubVersionでpostcommitフックを使用するスクリプトを作成したいとします。スクリプトをリポジトリからエクスポートしてからサーバーにFTPで転送するか、リポジトリからサーバーの作業ディレクトリにチェックアウトして、コミット後のフックスクリプトでサーバーの作業ディレクトリで「svnupdate」を呼び出すことができます。 。

SubversionFAQに詳細があります

于 2008-08-18T03:54:54.020 に答える
3

サーバーへのシェルアクセスがあり、それにSVNがインストールされている(またはSVNをインストールできる)場合、最善の策はFTPを完全にバイパスすることです。

アプリのデプロイ方法は(簡略化)です

  • 開発者はコードを記述し、トランクにチェックインします
  • 定期的にトランクが安定したら、タグとしてスナップショットを撮ります
  • サーバー上で、svnがタグをチェックアウトします

サーバー(またはライブサーバー自体に直接)に変更を加える必要がある場合は、Subversionを使用してコードを同期するのは簡単です。

于 2008-08-18T03:57:18.930 に答える
2

おそらく、展開にはsvn checkoutではなくsvn exportを使用する必要があると思います.svnディレクトリが本番バックアップジョブを混乱させることはありません. svn export は「クリーンな」チェックアウトです。

また、すべてを処理するスクリプトも作成します。コードの構造によっては、多くの場合、ディレクトリをバージョン管理し、シンボリック リンクを最新バージョンに更新するだけでロールバックが容易になります。

Capistranoなどを使用してデプロイを自動化することもできます。ただし、CruiseControl の推奨事項には 2 番目です。

于 2008-08-18T04:56:25.347 に答える
1

あなたが探しているのは、自動ビルドスクリプトとの統合のようなものだと思います。私はCruiseControlを使用して、ASP.Netアプリケーションで同様のことを行いました。私はあなたの正確な要件を知りませんが、あなたがそれをあなたが望むことをするようにさせることができると思います。

于 2008-08-18T03:36:43.260 に答える
1

コミット後のスクリプトはこれに役立ちます。基本的に、すべてのコミットで、イベントの後にスクリプトが呼び出されます。これを使用して、どこにでもsvnエクスポートを実行できます。

興味深い記事は、これがどのように行われるかを示しており、これは、フックスクリプトをsubversionで使用する方法を示しています

于 2008-08-18T03:50:11.970 に答える
1

おそらく、SVNの「フック」を使用してこれを行うことができます。基本的に、すべてのチェックインの前または後にスクリプトを実行するようにサーバーを構成できます。オンラインブックの関連セクションへの直接リンクは次のとおりです。

于 2008-08-18T03:52:28.783 に答える
0

私はオリオンの考えを2番目にしています。サーバーへのシェルアクセスがあれば、Subversion自体をデプロイメントツールとして使用するのは実際には非常に簡単です。誤って.svnディレクトリを公開しないように、いくつかのWebサーバールールが設定されていることを確認してください。

于 2008-08-18T04:13:18.087 に答える
0

svn2web は、コミットごとに Subversion リポジトリから Web サーバーにファイルを ftp または scp します。詳細については、SourceForgeプロジェクトを参照してください。

于 2009-02-04T18:52:38.123 に答える