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