2012-04-12 8 views
3

私は私たちのリポジトリを格納するためにVisual SVN Serverを実行しているWindows Serverを持っています。 そのサーバー上にもテストコピーがあります。SVNポストコミットフックバッチウィンドウ

私はそれが自動的に私はこのように設定した後のコミットフックでのVisual SVNで何か

をコミットするたびにそのテストのコピーを更新して、単純なSVNのコミット後のフックを設定しようとしている

私はそれの上またはWコマンドラインからダブルクリックして、サーバーでバッチファイルを実行すると

"C:\Program Files (x86)\VisualSVN Server\bin\updatescripts.bat" D:\inetpub\TESTCOPY 

はその後、そのバッチファイルは、この

PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\" 
svn update %1 

のような単純な更新がありますオークは大丈夫です。 私のラップトップから何かをコミットするとき、それはフリーズし、私に何のエラーも与えず、テストコピーをロックするので、私は入り込み、クリーンアップを実行する必要があります。

ネットワークサービスとしてVisual SVNサービスが実行されています。このaacountは、サーバー上のbinフォルダとテストコピーに完全にアクセスできます。

どのように簡単なsvnの更新を投稿するにはどのようにコミットフックの誰ですか?

おかげ FEDE

+0

私は同じことを試みています。このアプローチ。私は奇妙な結果を得るが、最終的にはバッチファイルをダブルクリックしても更新されない。私がpost-commitフックでバッチファイルの名前を変更すると、ファイルを見つけることができないというエラーが表示されます。だからフックはファイルを見つけることができるようだが、それを実行しない?私は知りませんが、ここに私が持っているものがあります。ポストコミットフックで : "C:/私のパス/ myrepository/FILE.BAT" バッチファイルで: CD "C:/ワーキングパス/ myrepository" のsvn更新 誰もがすべての問題を参照してください? – mgrenier

+0

VisuaSVNサーバーをインストールすると、%VISUALSVN_SERVER%環境変数が追加されます。それを確認してください。 – bahrep

答えて

1

は、私は同様の問題を持っていたし、それはSVNはバックスラッシュの代わりにスラッシュを使用するようにパスを好きということが判明しました。

このお試しください:私は私のポストコミットフックでこれを置く...これは私のために働い万人の異なるものを試した後

set MYPATH=%1 

:: Transform backslashes to forward slashes 
set MYPATH=%MYPATH:^\=/% 

svn update %MYPATH% 
+0

申し訳ありませんが同じですが、テストコピーをフリーズしてロックします。 –

0

を 「C:\プログラムファイル\ VisualSVNサーバー\ビン\のsvn.exe」更新 『C:私のパス\ \』私のパスは

を更新する作業コピーのパスをある はまた、私はローカルシステムとして実行するようにサービスを変更しなければならなかった

+0

ローカルシステム?どうして?デフォルトのネットワークサービスを使用して、 'C:\ my path \ 'へのアクセスを提供してください。 – bahrep

+0

ネットワークサービスを使用するとアクセス権の問題が発生しました...特定のインストールの設定に依存するかもしれません。問題。 – mgrenier

1

svn updateコマンドを実行しています。正確にどの作業コピーを更新しようとしていますか?

渡されるパラメータは、リポジトリのパスです。これは作業ディレクトリではなく、Subversionマスターリポジトリを含むディレクトリを指します。これはあなたの投稿コミットフックが格納されているのと同じディレクトリです。

Subversionフックはユーザーの作業ディレクトリにアクセスできないため、ユーザーのファイルを操作することはできません。フックスクリプトは、通常、svnlookで、svnではなく、使用する必要があります。これを行うことで、あなたは何らかの問題に陥るのを防ぎます。

あなたが場所を知っていれば、サーバー上でSubversionの作業コピーを更新することが可能である:それはSubversionを提携しているため

PATH=%PATH%;"C:\Program Files (x86)\VisualSVN Server\bin\" 
set SVN_WORK_DIR=C:\SVN\workdir" 
svn update %SVN_WORK_DIR% 

しかし、私はこのことをお勧めしません。コミットを行ったユーザは、更新が完了するまで待ってから、Subversionがプロンプトの制御をユーザに返します。

0

実際にはあなたがそれをしたいのではありません。あなたがするべきことは、Jenkinsのようなものを使ってリポジトリを見ることです。 Jenkinsはあなたのリポジトリを見ることができ、それが変わったらテストコピーを更新し、ビルドをキックオフし、自動テストを実行します。