Come spostare un repository Subversion (SVN)

Qualche giorno fa ho illustrato le caratteristiche di SVN, un sistema collaborativo per agevolare lo sviluppo.

Spostare un repository SVN, una volta creato, è abbastanza semplice a patto che abbiate accesso all'amministrazione del repository. Ancora meglio se avete a disposizione un accesso shell che vi consentirà di digitare manualmente i pochi comandi necessari al completamento dell'operazione.

La procedura seguente è testata per il seguente ambiente:

  1. SVN server installato su sistema operativo Unix/Linux
  2. Accesso via shell (SSH) all'amministrazione dei repository

Come prima cosa connettetevi al vostro server via shell.
Accedete alla directory che contiene il vostro repository e digitate il seguente comando

svnadmin dump /path/repository > backup.dmp

per eseguire una esportazione completa del database.

Esempio: Immaginando di voler esportare in /home/user/wapi.dmp il repository SVN chiamato wapi che si trova in /home/user/svn/wapi/, digitate i seguenti comandi

cd /home/user/
svnadmin dump svn/wapi > wapi.dmp

A questo punto il processo di esportazione comincia. Via shell cominceranno ad apparire il numero di revisioni esportate.

* Dumped revision 0.
* Dumped revision 1.
* Dumped revision 2.
* Dumped revision 3.
* Dumped revision 4.
* Dumped revision 5.
* Dumped revision 6.
...

L'esportazione è avvenuta con successo. Se desiderate comprimere il file per agevolare lo spostamento, potete ricorrere al comando tar.

tar -zcf wapi.tgz wapi.dmp

Ora spostatevi nella cartella / server nel quale desiderate importare il repository SVN. Se non è ancora disponibile create il nuovo repository attraverso le opzioni messe a disposizione dal vostro provider o via shell.

Via shell eseguite

svnadmin create nomerepository

Ora importate il repository prima eportato. Non dimenticate di decomprimere il file nel caso lo abbiate salvato in formato tgz. Per decomprimere il file eseguite

tar -zxf wapi.tgz

Mentre per importare il file

svnadmin load /path/nuovorepository < wapi.dmp

Riassumendo, a parte i comandi a corredo, per esportare un repository SVN eseguite

svnadmin dump /path/repository > nomefile.dmp

mentre per importarlo

svnadmin load /path/nuovorepository < nomefile.dmp