Si utilizas TortoiseSVN quizá te interese este pequeño programa para hacer copias de seguridad periódicas de tus repositorios SVN. Está escrito en VBScript. Guárdalo en un archivo con la extensión vbs y ejecútalo cada vez que quieras hacer la copia. El resultado será un archivo cuyo nombre seguirá el formato 2008-01-30_19-30-00_repositorio.backup (fecha, hora y nombre del repositorio, terminado en la extensión backup).
' Fecha, en el formato AAAA-MM-DD.
Function ObtenerFecha
Dim sAno 'As String
Dim sMes 'As String
Dim sDia 'As String
Dim sAhora 'As Date
sAhora = Now
sAno = DatePart("yyyy", sAhora)
sMes = DatePart("m", sAhora)
If (Len(sMes) = 1) Then
sMes = "0" & sMes
End If
sDia = DatePart("d", sAhora)
If (Len(sDia) = 1) Then
sDia = "0" & sDia
End If
Dim sResultado 'As String
sResultado = sAno & "-" & sMes & "-" & sDia
ObtenerFecha = sResultado
End Function
' Hora, en el formato HH-MM-SS.
Function ObtenerHora
Dim sHora 'As String
Dim sMinuto 'As String
Dim sSegundo 'As String
Dim sAhora 'As Date
sAhora = Now
sHora = DatePart("h", sAhora)
If (Len(sHora) = 1) Then
sHora = "0" & sHora
End If
sMinuto = DatePart("n", sAhora)
If (Len(sMinuto) = 1) Then
sMinuto = "0" & sMinuto
End If
sSegundo = DatePart("s", sAhora)
If (Len(sSegundo) = 1) Then
sSegundo = "0" & sSegundo
End If
Dim sResultado 'As String
sResultado = sHora & "-" & sMinuto & "-" & sSegundo
ObtenerHora = sResultado
End Function
' Creación de la orden a ejecutar.
Dim sPrefijo 'As String
sPrefijo = ObtenerFecha & "_" & ObtenerHora
Dim sOrden 'As String
sOrden = """%programfiles%\svn\bin\svnadmin.exe"" dump c:\repos > c:\" & sPrefijo & "_repos.backup"
' Ejecución
Dim WshShell 'As WScript.Shell
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "%comspec% /c " & sOrden, 0, True
En este caso en particular, se supone que el repositorio está en C:\repos\. El resultado acabará en C:\. Cambia esas rutas por las que más te interesen.
Hola, funciona perfecto, me creo el backup al instante, ahora, suponiendo que perdi el original y quiero usar el backup como hago ?
Muy buenas, Isabel. Ya ni me acordaba de esta entrada, hace mucho que no actualizo el blog. Y también mucho que no hago este tipo de copias de seguridad.
Si no recuerdo mal, es necesario ejecutar algo así:
svnadmin load /ruta/del/repositorio < /ruta/de/la/copia.backup
Pero no me hagas mucho caso, contrasta esto con la información que puedas encontrar en otras fuentes. Espero que te sirva como punto de partida.
Ya me contarás.