Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Command line to update SVN folders

I have tried several things so far, but I haven't had much luck yet. I'm attempting to have a command line or PowerShell script that I can run once a day to make sure my numerous checked-out projects are up to date.

I know I would be looping through the directory folders inside my workspace, but when setting the variables I haven't had any luck as it will error out. I am using TortoiseSVN, and Windows Vista.

Here is what I have so far:

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
like image 432
Josh Knutson Avatar asked Jun 23 '09 18:06

Josh Knutson


1 Answers

It might be easier in PowerShell:

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

Or if you want to specify certain project directories:

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

PowerShell scripts have a ps1 extension. You might also have to update the execution policy to allow scripts to run:

Set-ExecutionPolicy RemoteSigned
like image 90
dahlbyk Avatar answered Sep 28 '22 10:09

dahlbyk