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

47 svn windows scripting

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

Mat*_*att 106

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

CD C:\Program Files\TortoiseSVN\bin\
START TortoiseProc.exe /command:update /path:"C:\www\MyRepo\" /closeonend:0
Run Code Online (Sandbox Code Playgroud)

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

  • 很好的回答,谢谢.只需向可能想要同时更新多个目录的未来读者添加注释,请在此处查看我的问题(和答案):http://superuser.com/a/689155/264136 (4认同)
  • 和更多+1 4年后:) (3认同)
  • 好好救了我一些,4年后呢?谢谢!:) (2认同)
  • +1这很完美.我只需要我的生产服务器进行更新.因此,只要工作副本是干净的,我就不必担心冲突(因为我没有在服务器上开发).谢谢! (2认同)
  • +1,作为管理Windows生产服务器的新手,这非常有用. (2认同)

Mar*_*Pim 31

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

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


编辑:好的,看看这篇关于设置计划任务的微软文章.

您需要一个名为svnUpdate.bat的批处理文件或类似下面的内容:

cd C:/path/to/your/working/copy
svn update
Run Code Online (Sandbox Code Playgroud)

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

确保安装了svn的命令行版本(我使用SlikSvn)并在PATH上可用(在命令窗口类型中,svn并确保它显示'Type svn help ...'或类似内容.

  • 批处理脚本将是最好的解决方案 (2认同)

var*_*arl 16

@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.
Run Code Online (Sandbox Code Playgroud)

如果您使用TortoiseSVN,那么上述批处理脚本将适合.否则,您可以修改它以使用您当前使用的任何SVN客户端.只需在.bat文件中弹出它并按需运行它.

  • 您可以将此批处理文件放在桌面上。将SOURCE变量(我使用C:\ sauce \ CURRENT)修改为已签出中继的目录。将SVN变量设置为可找到TortoiseSVN(SVN客户端)的安装目录。然后,脚本运行带有几个参数的TortoiseSVN可执行文件,以告诉Tortoise在哪个目录上运行SVN更新。这将使用SVN信息库中的最新文件更新您的项目。不是应用程序本身。 (2认同)

Vip*_*ari 6

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