用于更新SVN文件夹的命令行

时间:2009-06-23 18:07:59

标签: svn command-line powershell

到目前为止,我已尝试了几件事,但我还没有太多运气。我正在尝试使用命令行或PowerShell脚本,我可以每天运行一次,以确保我的众多签出项目是最新的。

我知道我会循环遍历工作区内的目录文件夹,但是在设置变量时我没有运气,因为它会出错。我使用的是TortoiseSVNWindows Vista

这是我到目前为止所做的:

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

:: Here you need to make some changes to suit your system.
set SOURCE=C:\workspace\Project
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.

@echo off

2 个答案:

答案 0 :(得分:11)

在PowerShell中可能更容易:

Set-Alias tsvn 'C:\Program Files\TortoiseSVN\bin\TortoiseProc.exe'
dir C:\workspace | %{ tsvn /command:update /path:"$($_.FullName)" /closeonend:2 }

或者如果您想指定某些项目目录:

cd C:\workspace
$projects = 'Proj 1','Proj 2','Proj 3'
$projects | %{ tsvn /command:update /path:"$_" /closeonend:2 }

PowerShell脚本具有ps1扩展名。您可能还必须更新执行策略以允许脚本运行:

Set-ExecutionPolicy RemoteSigned

答案 1 :(得分:10)

只需使用SVN命令行本身:

pushd "%SOURCE%"
svn update
popd

您可以在http://subversion.tigris.org/getting.html#windows获取适用于Windows的Subversion工具。使用TortoiseSVN并排安装它们。