web-dev-qa-db-ja.com

Subversion作業コピーを自動的に更新するにはどうすればよいですか?

誰が私が自動的に実行できるかを知っていますかsvn update?誰かがスクリプトまたはそのようなものを持っている場合、例を教えてください。

46
Marko

TortoiseSVNを使用しています。実稼働サーバーには、次のバッチファイルを実行するスケジュールされたタスクがあります。

CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\www\MyRepo\" /closeonend:0

うまくいけば、他の人の時間を節約できます!

104
Matt

SVN Notifier を使用します。これはシステムトレイにあり、リポジトリが変更されるたびに通知します。そして、私はそれを強くお勧めできます。更新するものがある場合にのみ更新することを意味します!

または、スケジュールされたタスク/ cronジョブを設定して、svn update毎時/日/何でも適切なディレクトリに。


EDIT:OK、 このMicrosoftの記事 を参照して、スケジュールされたタスクの設定を確認してください。

SvnUpdate.batまたは次のようなバッチファイルが必要です。

cd C:/path/to/your/working/copy
svn update

スケジュールされたタスクを取得して、これを好きなだけ実行します(1時間に1回は賢明だと思われます)

Svnのコマンドラインバージョンがインストールされていることを確認し( SlikSvn を使用)、PATHで使用できることを確認します(コマンドウィンドウでsvnと入力し、 'Type svn help .. 。' または類似。

30
Mark Pim
@echo off

cls
echo == Initiating system instance variables...
echo. -- Setting the variables...

:: Here you need to make some changes to suit your system.
set SOURCE=C:\sauce\CURRENT
set SVN=C:\Program Files\TortoiseSVN\bin

:: Unless you want to modify the script, this is enough.

echo. %SOURCE%
echo. %SVN%
echo. ++ Done setting variables.
echo.
echo == Updating source from SVN
echo. -- Running update...
"%SVN%\TortoiseProc.exe" /command:update /path:"%SOURCE%" /closeonend:2
echo. ++ Done.

echo. -- Cleaning up...
set SOURCE=
set SVN=
echo. ++ Done.

TortoiseSVNを使用している場合、上記のバッチスクリプトは適切です。それ以外の場合は、現在使用しているSVNクライアントを使用するように変更できます。これを.batファイルにポップし、オンデマンドで実行します。

15
varl

http://code.google.com/p/commitmonitor/ からCommit-Monitorをダウンロードして使用することもできます。 SVNリポジトリのコミットを監視し、発生時にユーザーに通知します。 GNU GPL、ver 2。

4
Vipin Hari

注:オペレーティングシステムがわかったら、より詳細な回答をお送りします。

一般的な手順

  1. ローカルリポジトリの内容を変更しないでください。
  2. こちらをお読みください ATの使用方法に関するリンク Windowsのコマンドラインからスケジュールを設定します。
  3. ATコマンドを使用して、次のコマンドをスケジュールします(コマンドラインバージョンのsvnがインストールされている場合):

    svn update reporsitory_directory

  4. 利益!

1
Elijah