Thanks for the script. I will work on it. Thing is that I was hosting the Visual SVN server in my office and I was connecting from outside to work remotely and checking files and stuff. But my ISP blocked me and now I can only work through port 80 and even by changing ports, somehow the ISP is blocking me to the outside world. Anyway, I got a virtual private server for 40 bucks/month and I'm moving my repositories there as soon as this server is online. I'll let you know how it went.
Carlos On Nov 7, 9:02 pm, [EMAIL PROTECTED] wrote: > Here is one option for you. It is a vbscript that dumps each > repository. You could easily alter this to do a hotcopy or incremental > dump if you wanted. > > Basic usage is simple. Save this as a vbscript file into your > repository home folder (SVN default is c:\Repositories). Edit lines > 21/22 and line 25 to match your needs (look for the ****). > > I never could get this to run the command directly from the vbscript > so it generates a batch file on the file and executes that. > > Watch out for line wraps from the html post. I've tried to fix > anything I saw here but it might change after I post it. > > Joel Reinford > > Option Explicit > > 'loop through folders and use svnadmin to dump all repos to a backup > location > 'trying to run this type of command for each repo > 'C:\Program Files\VisualSVN Server\bin>svnadmin dump C:\svnrepos > \MyProject > \\nas\folder\MyProject.bak > > Const ForReading = 1 > Const ForWriting = 2 > Const ForAppending = 8 > > Dim scriptPath, argCount, namedArgs > scriptPath = replace(wscript.scriptfullname, wscript.scriptname, "") > argCount= WScript.Arguments.Count > Set namedArgs = WScript.Arguments.Named > > Dim fso, svnExePath, repoFolderPath, backupFolderPath > > Set fso = CreateObject("Scripting.FileSystemObject") > > '************* uncomment or edit for the correct path to svnadmin > **************** > svnExePath = "C:\Program Files\VisualSVN Server\bin\svnadmin.exe" > 'svnExePath = "C:\Program Files (x86)\VisualSVN Server\bin > \svnadmin.exe" > > '************* edit this line to match your backup destination > **************** > backupFolderPath = "c:\SvnBackup" > > 'only needs editing if you don't put it into the repos folder > repoFolderPath = scriptPath > > If namedArgs.Exists("help") Or namedArgs.Exists("?") Then > Wscript.Echo "Usage: " > Wscript.Echo "/svn:<svn> is optional to enter the svnadmin executable > full path & name." > Wscript.Echo " - default is " & svnExePath > Wscript.Echo > Wscript.Echo "/repos:<repos> is optional to select the svn > repositories folder." > Wscript.Echo " - default is " & repoFolderPath > Wscript.Echo > Wscript.Echo "/backup:<backup> is optional to select the svn backup > destination folder." > Wscript.Echo " - default is " & backupFolder > Wscript.Quit > End If > > If namedArgs.Exists("svn") Then > svnExePath = Trim(namedArgs.Item("svn")) > End If > > If namedArgs.Exists("repos") Then > repoFolderPath= Trim(namedArgs.Item("path")) > End If > > If namedArgs.Exists("backup") Then > backupFolderPath= Trim(namedArgs.Item("backup")) > End If > > DumpSvnRepos svnExePath, repoFolderPath, backupFolderPath > > 'create and execute a batch file to dump all of the repos > 'for some reason running the dump command directly will not work > Function DumpSvnRepos(svnExePath, rootFolderPath, backupFolderPath) > Dim rootFolder, subFolders, folder, file > Dim logFileName, text > > Set rootFolder = fso.GetFolder(rootFolderPath) > Set subFolders = rootFolder.SubFolders > > logFileName = Replace(wscript.ScriptFullName, ".vbs", ".bat") > > Set file = fso.OpenTextFile (logFileName, ForAppending, True) > > For Each folder in subFolders > Wscript.Echo folder.Name > text = Chr(34) & svnExePath & Chr(34) & " dump " _ > & Chr(34) & repoFolderPath & "\" & folder.Name & Chr(34) _ > & " > " & Chr(34) & backupFolderPath & "\" & folder.Name & > ".bak" & Chr(34) > file.WriteLine(text) > > Next > > file.Close > > Wscript.Echo "Batch file created: " & logFileName > runCommand logFileName > > End Function > > Function runCommand(commandLine) > > Dim shell, errorCode > Set shell = CreateObject("WScript.shell") > > shell.Run commandLine, ,True 'command, WindowType, WaitOnReturn > > errorCode = err.Number > If errorCode > 0 Then > wscript.echo "runCommand Error " & err.Number & ": " & VbCrLf > _ > & commandLine & VbCrLf & err.Description > logText "runCommand Error " & err.Number & ": " & vbTab _ > & commandLine & vbTab & err.Description > Err.Clear > Else > logText "runCommand Success : " & vbTab & commandLine > End If > > runCommand = errorCode > > End Function > > Sub LogText(text) > Dim file, logFile > > logFile = Replace(wscript.ScriptFullName, ".vbs", ".txt") > > Set file = fso.OpenTextFile (logFile, ForAppending , True) > > ' Writes Text every time you run this VBScript > file.WriteLine(text) > file.Close > > End Sub