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

用于更新SVN文件夹的命令行,svn,command-line,powershell,Svn,Command Line,Powershell,到目前为止,我已经尝试了好几种方法,但运气还不太好。我正在尝试使用一个每天可以运行一次的命令行或PowerShell脚本,以确保我的许多签出项目都是最新的 我知道我会在我的工作区内的目录文件夹中循环,但是当设置变量时,我没有任何运气,因为它会出错。我正在使用,并且 以下是我到目前为止的情况: echo == Initiating system instance variables... echo. -- Setting the variables... :: Here you need to

到目前为止,我已经尝试了好几种方法,但运气还不太好。我正在尝试使用一个每天可以运行一次的命令行或PowerShell脚本,以确保我的许多签出项目都是最新的

我知道我会在我的工作区内的目录文件夹中循环,但是当设置变量时,我没有任何运气,因为它会出错。我正在使用,并且

以下是我到目前为止的情况:

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

只需使用SVN命令行本身:

pushd "%SOURCE%"
svn update
popd

您可以在上获得Windows的Subversion工具。将它们与TortoiseSVN并排安装。

在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

您得到的错误是什么?另外,将此文件设置为简单的.bat文件应该可以做到这一点。嗯。。。你为什么要用乌龟?使用常规win32 svn命令行客户端更有意义,主要是因为常规客户端是从get go设计的,用于命令行工作和自动化。除非单独安装,否则Ortoise不会随命令行界面一起提供。实际上,Ortoise附带了一个命令行工具(SubWcRev.exe)。不,抱歉,我们用它来更新源文件的版本。编号,它不能用于更新/提交。如何创建要循环的文件夹列表,以及PowerShell脚本的扩展是什么?我非常喜欢它,它比我使用的旧脚本简单得多