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

Reply via email to