0

私はかなり新しい Web 開発会社で働いており、現在、バージョン管理システムを実装するためにサブバージョンのインストールをテストしています。バージョン管理システムで実行する必要がある機能の 1 つは、コミット後に編集済みファイルで開発サーバーを更新することです。

システム要件のために、いくつかの個別の開発サーバーを維持する必要がありますが、すべての SVN リポジトリに対して 1 つのサーバーを維持したいと考えています。開発サーバーが SVN と同じ場所にある場合、更新は非常に簡単であることは理解していますが、それは私たちには不可能です。そのため、開発サーバーごとに個別のネットワーク ドライブを SVN サーバーにマップする必要があります。

ただし、コミット時にこのエラーが発生します。post-commit.bat ファイルで参照されている作業コピーのテスト ディレクトリは次のとおりです。

SET WORKING_COPY=Z:\testweb

ただし、これはエラーになります...

post-commit hook failed (exit code 1) with output: svn: Error resolving case of 'Z:\testweb'

これは、サーバーが私と同じユーザーではないため、「Z」にマップする必要がある共有がないためだと確信しています。これを回避する方法がわかりません。誰でも助けることができますか?

更新: これらの問題を調べれば調べるほど、問題の本当の解決策は、CI サーバーを使用して、私が達成しようとしていることを達成することであることがわかります。私は現在、TeamCity とそれが私たちに何をもたらすかを調べています。

4

1 に答える 1

0

post-commitフックを介してこれを行わないでください。フックを成功させることができた場合、更新が完了するまでコミットを行った人を待たせることになります。代わりに、継続的なビルド エンジンであるJenkinsを使用することをお勧めします。

構築するものが何もない可能性があります。結局のところ、PHP または JavaScript を使用している場合、コンパイルするものは何もありません。ただし、Jenkins を使用して更新を行うことはできます。

細かいことまでは話せませんが、Jenkins でできることの 1 つは、作業ディレクトリを再定義することです。これを行うには、ジョブを定義するときに [詳細設定] ボタンをクリックします。作業ディレクトリをどこに置くか尋ねられます。この場合、サーバーの作業ディレクトリを指定できます。

Jenkins でできることの 1 つは、テストを自動的に実行すること、または少しスムーズな更新を行うことです。たとえば、いくつかのファイルを変更するときに Web サーバーを再起動する必要がある場合や、100 個のファイルを変更している場合にすべてのファイルが一度に変更されることを確認する必要がある場合、またはサーバーが安定していない場合などです。州。Jenkins を使用してこれを行うこともできます。また、問題が発生した場合は、Jenkins からサーバーの更新に失敗したことをサーバーの責任者にメールで送信できます。

Jenkins はセットアップと使用が簡単です。これをダウンロードして、10 分で Jenkins を起動できます。Jenkins を見たことがなく、その仕組みも知らなかった場合、Jenkins でジョブをセットアップするのにさらに 15 分かかることがあります。

于 2012-03-23T04:29:44.213 に答える