Question:
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:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
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 |
Answer:
It might be easier in PowerShell:
1 2 3 |
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:
1 2 3 4 |
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:
1 2 |
Set-ExecutionPolicy RemoteSigned |