Changes between Version 4 and Version 5 of MultipleCVStoSingleSVN


Ignore:
Timestamp:
Aug 25, 2006, 1:32:31 PM (13 years ago)
Author:
piccardi
Comment:

--

Legend:

Unmodified
Added
Removed
Modified
  • MultipleCVStoSingleSVN

    v4 v5  
    11== Come unificare più repository CVS su un singolo repository Subversion ==
    22
    3 Il problema si pone quando si vogliono unificare più repository CVS su un solo repository Subversion, o estrarre da un repository CVS un certo numero di sottodirectory (considerate come progetti singoli) e trasformarle in un unico repository Subversion. La procedura per migrare un repository CVA alla volta è illustrata con qualche inesattezza (almeno al tempo della stesura di queste note) nelle FAQ di {{{cvs2svn}}} (su http://cvs2svn.tigris.org/faq.html#oneatatime). Detta procedura suggerisce di farsi sempre una copia delle directory del CVS per precauzione, usando una nuova directory, con qualcosa del tipo di:
     3Il problema si pone quando si vogliono unificare più repository CVS su un solo repository Subversion, o estrarre da un repository CVS un certo numero di sottodirectory (considerate come progetti singoli) e trasformarle in un unico repository Subversion. La procedura per migrare un repository CVS alla volta è illustrata con qualche inesattezza (almeno al tempo della stesura di queste note) nelle FAQ di {{{cvs2svn}}} (su http://cvs2svn.tigris.org/faq.html#oneatatime). Detta procedura suggerisce di farsi sempre una copia delle directory del CVS per precauzione, usando una nuova directory, con qualcosa del tipo di:
    44{{{
    55mkdir -p newcvsrepo/CVSROOT
    6 cp -r /var/cvs/Ipezzo /home/newcvsrepo/
    7 cp -r /var/cvs/IIpezzo /home/newcvsrepo/
     6cp -r /var/cvs/PrimoPezzo /home/newcvsrepo/
     7cp -r /var/cvs/SecondoPezzo /home/newcvsrepo/
    88cp -r /var/cvs/ecc /home/newcvsrepo/
    99...
     
    1919mkdir newsvn
    2020cd newsvn
    21 cvs2svn --dump-only --mime-type=/etc/mime.types --eol-from-mime-type --no-default-eol --keywords-off ~/newcvsrepo/Ipezzo
     21cvs2svn --dump-only --mime-type=/etc/mime.types --eol-from-mime-type --no-default-eol --keywords-off ~/newcvsrepo/PrimoPezzo
    2222}}}
    23 a questo punto vogliamo importare questo nel nuovo repository sotto la directory {{{Ipezzo}}}, che pertanto deve essere creata, questo comporta allora:
     23a questo punto vogliamo importare questo nel nuovo repository sotto la directory {{{PrimoPezzo}}}, che pertanto deve essere creata, questo comporta allora:
    2424{{{
    25 svn co /var/svn/nuovoSVN .
    26 mkdir Ipezzo
    27 svn add Ipezzo
     25svn co /var/svn/NuovoSVN .
     26mkdir PrimoPezzo
     27svn add PrimoPezzo
    2828svn ci
    2929}}}
    3030e a questo punto potremo importare il ''dump'' ottenuto in precedenza con:
    3131{{{
    32 svnadmin --parent-dir Ipezzo load /var/svn/nuovoSVN < cvs2svn-dump
     32svnadmin --parent-dir PrimoPezzo load /var/svn/NuovoSVN < cvs2svn-dump
    3333}}}
    3434e ripetendo la procedura per tutti gli altri pezzi si realizzerà la conversione.
     35
     36Si tenga presente però che così facendo la struttura del repository Subversion non sarà più quella classica con le tre directory {{{branch}}}, {{{tags}}} e {{{trunk}}}, dato che queste saranno ricreate (a partire dai dati estratti dal CVS) al di sotto delle directory in cui si sono importati i singoli pezzi (cioè sotto {{{PrimoPezzo}}}, {{{SecondoPezzo}}}, ecc.).
     37
     38Inoltre la sequenza delle release dipenderà ovviamente dall'ordine in cui si sono effettuate le varie importazioni, per cui sarà normale che un changeset di {{{PrimoPezzo}}} abbia una release minore di uno di {{{SecondoPezzo}}} anche se quest'ultimo è stato fatto in un tempo precedente (i tempi saranno riportati correttamente, quello che si rompe è la corrispondenza fra tempo successivo e release successiva).