wiki:ConversioneDalCVS

Come convertire a Subversion un repository CVS

La conversione di un repository CVS a Subversion è piuttosto semplice grazie al programma cvs2svn che consente una conversione al volo del contenuto di un repository. La modalità più semplice per effettuare la conversione è quella di invocare il comando per creare direttamente un nuovo reposity nella forma:

cvs-repos-path -s /path/to/svn/repo /path/to/cvs/repo

questo però crea il nuovo repository usando BDB come backend, per cui se si vuole usare questo metodo è opportuno usare l'opzione --fs-type=fsfs.

Nel mio caso ho preferito usare un approccio diverso, che mi consentisse anche di avere un dump del contenuto del repository CVS; inoltre uno dei problemi che possono sorgere è che se non si sono marcati opportunamente come binari i file inseriti sul CVS, questo possono venire corrotti nella transizione, non essendo riconosciuti come tali. Per questo cvs2svn consente di utilizzare una serie di opzioni che consentono di effettuare il riconoscimento dei file binari in fase di conversione. Il comando utilizzato pertanto è stato:

cvs2svn --dump-only --mime-type=/etc/mime.types --eol-from-mime-type \
--no-default-eol --keywords-off /var/cvs/gapil

questo consente di creare un file cvs2svn-dump nella directory corrente, con il dump del contenuto del repository CVS da caricare in un repository Subversion con svnadmin load.

A questo punto si potrà craere il nuovo repository Subversion e caricarvi il contenuto del precedente dump con i seguenti passi:

svnadmin create --fs-type fsfs /var/svn/gapil
svnadmin load /var/svn/gapil < cvs2svn-dump

inoltre si dovranno correggere opportunamente i permessi dei file; se si usa DAV per l'accesso al repository occorrerà allora eseguire i seguenti comandi:

chown -R www-data /var/svn/gapil
chgrp -R gapil /var/svn/gapil
chmod g+w /var/svn/gapil
chmod -R g+w /var/svn/gapil/db
Last modified 12 years ago Last modified on Jun 27, 2006, 7:16:07 PM