Copias de seguridad de repositorios SVN

1 minuto(s) de lectura

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%svnbinsvnadmin.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.