如何自动更新Subversion工作副本?

时间:2009-05-28 08:39:59

标签: windows svn scripting

有人知道如何自动运行svn update吗?如果有人有脚本或类似的东西,你能告诉我一个例子吗?

5 个答案:

答案 0 :(得分:104)

我正在使用TortoiseSVN。在生产服务器上,我有一个运行以下批处理文件的计划任务。

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

希望这能节省一些时间!

答案 1 :(得分:30)

我使用位于系统托盘中的SVN Notifier,并在每次存储库更改时通知我。我强烈推荐它。这意味着您只有在有更新内容时才会更新!

或者,您可以设置计划任务/ cron作业,以便每小时/每天/每小时在相应目录中运行svn update


编辑:好的,请在设置预定任务时查看this Microsoft article

您需要一个名为svnUpdate.bat的批处理文件或类似的东西:

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

获取计划任务以便随时运行(每小时一次似乎合理)

确保安装了svn的命令行版本(我使用SlikSvn)并在PATH上可用(在命令窗口中输入svn并确保它显示'输入svn帮助... '或类似的。

答案 2 :(得分:15)

@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文件中弹出它并按需运行它。

答案 3 :(得分:4)

您还可以从http://code.google.com/p/commitmonitor/下载并使用 Commit-Monitor 。它监视SVN存储库以进行提交,并在发生时通知用户。它在GNU GPL,ver 2中。

答案 4 :(得分:1)

注意:一旦我了解您的操作系统,我将能够为您提供更详细的答案。

一般说明

  1. 永远不要更改本地存储库中的任何内容。
  2. 阅读此link on how to use AT以从Windows中的命令行安排。
  3. 使用AT命令安排以下命令(假设您安装了svn的命令行版本):

    svn update reporsitory_directory

  4. 利润!