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

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

我正在使用TortoiseSVN。 在生产服务器上,我有一个运行以下batch file的计划任务。

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

希望这会节省别人一些时间!

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

或者,你可以设置一个计划任务/ cron作业,每小时/每天/每天在相应的目录下运行svn update


编辑:好的,看看这个微软文章设置一个计划任务。

你想要一个名为svnUpdate.bat的batch file,或者如下所示:

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

获取计划的任务来运行这个经常你喜欢(一个小时似乎是合理的)

确保你已经安装了svn的命令行版本(我使用了SlikSvn )并且可以在你的PATH上find(在一个命令窗口中inputsvn并确保它显示'Type svn help …'或者类似的东西。

 @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客户端。 只需将其popup到.bat文件中并按需运行即可。

您也可以从http://code.google.com/p/commitmonitor/下载并使用;Commit-Monitor 。 它监视SVN仓库的提交,并通知用户何时发生。 它在GNU GPL,版本2。

注意:一旦我知道你的操作系统,我将能够给你一个更详细的答案。

一般说明

  1. 切勿改变本地存储库中的任何内容。
  2. 阅读这个链接,了解如何使用AT从Windows命令行进行安排。
  3. 使用AT命令来安排下面的命令(假设你已经安装了svn的命令行版本):

    svn update reporsitory_directory

  4. 利润!