Uso un servizio di subversion ospitato per un numero di progetti di sviluppo personali e di lavoro. Mentre conservano i backup come qualsiasi azienda di hosting, mi piacerebbe poter creare anche i miei backup locali per ogni evenienza. Questo servizio consente di richiedere e scaricare un backup, ma fanno pagare denaro per farlo. Esiste comunque la possibilità di generare un backup/dump del mio repository ospitato collegandoci ad esso come client tramite HTTPS?È possibile eseguire il backup/creare un dump di un repository di subversion senza accesso diretto al server?
risposta
In teoria "no", poiché il dump può essere eseguito solo dal comando svnadmin
. Tuttavia, c'è una soluzione non banale per aggirare questo.
Esistono due modi, uno semplice e uno rigido. Il semplice è un'utility chiamata rsvndump (discarica SVN remota), lo si può trovare qui: http://rsvndump.sourceforge.net/
Se quello più semplice non funziona per voi (rsvnadmin ha è limitazioni come scritto sul suo manpage), c'è il complesso 1:
Il secondo metodo più difficile richiede l'installazione di SVK, un client per il controllo della versione distribuita, creato utilizzando svn come client esteso. Sfortunatamente la procedura di installazione non è banale, ma ecco un .
È ora Lista il repository remoto utilizzando SVK:
svk ls URL-to-SVN
Seguire le istruzioni. Voilà, hai una copia locale del repository :). Le prime due revisioni sono correlate a SVK, quindi per eseguire un dump, esegui:
svnadmin dump -r2:HEAD ~/.svk/local > repository.dump
E ce l'hai.
SVK ha anche il vantaggio di essere prebuilt per Windows (here's the link).
È possibile utilizzare il comando svnsync
. Prenderà fondamentalmente tutte le revisioni di un database SVN sorgente e le trasferirà al database di backup. Può essere lento la prima volta che lo esegui poiché tutte le modifiche vengono apportate una alla volta, ma una volta completata la prima sincronizzazione è una buona soluzione.
Si noti che 'svnsync' richiede che il server sia in esecuzione SVN versione 1.4 o superiore. –