Translation(s): ?English - Italiano

(!) ?Discussion


Questa pagina contiene le linee guida per importare repository Subversion esistenti nel repository collab-maint per la manutenzione collaborativa di pacchetti su Alioth. Risulterà più semplice se si sta solo cercando di importarne uno esistente in uno nuovo, la procedura che segue può essere d'aiuto.

Si suppone che l'attuale repository si trovi nella posizione "/svn/miorepository" e che il pacchetto si chiami "${PACCHETTO}", sostituire questi valori con quelli adatti alle proprie esigenze. Si presume inoltre che si preveda di utilizzare la sezione deb-maint del repository collab-maint, quindi se si usa ext-maint basta sostituire deb-maint con ext-maint negli esempi riportati.

(deb-maint è per i pacchetti manutenuti dagli sviluppatori Debian, mentre ext-maint per quelli di altri)

Copiare il repository esistente

Prima di tutto bisogna creare una copia del repository esistente, questo dovrà essere fatto sulla macchina dove attualmente esso risiede e sarà un po' diverso a seconda di come è stato configurato. La differenza dipende dal fatto che il repository contenga una directory di livello superiore per il pacchetto oppure no.

L'attuale repository contiene una directory di livello superiore per il pacchetto

In questo caso, il repository è configurato più o meno in questo modo:

/svn/miorepository/${PACCHETTO}/branches
/svn/miorepository/${PACCHETTO}/tags
/svn/miorepository/${PACCHETTO}/trunk

Il repository è probabilmente configurato così in quanto oltre al pacchetto contiene altri file, bisognerà assicurarsi di estrarre solo i dati per il pacchetto, con il seguente comando:

svnadmin dump /svn/miorepository \
   | svndumpfilter --drop-empty-revs include ${PACCHETTO} \
        1> dumpfile 2> dumpfile.error

Per eventuali problemi controllare il file dumpfile.error.

L'attuale repository non ha una directory per il pacchetto

In questo caso il repository sarà così configurato:

/svn/miorepository/branches
/svn/miorepository/tags
/svn/miorepository/trunk

I dati sono pronti da copiare con il seguente comando:

svnadmin dump /svn/miorepository 1> dumpfile 2> dumpfile.error

Provare a caricare il file di copia in un repository

In primo luogo verificare il caricamento del file di copia creato nel passaggio precedente in un repository temporaneo, creare quindi un repository vuoto da qualche parte in cui si abbia accesso in scrittura (magari /svn):

svnadmin create /svn/collab-maint

Successivamente creare la directory deb-maint:

svn mkdir file:///svn/collab-maint/deb-maint -m "Initial directory creation"

Ora si provi a caricare il file di copia nel repository di test, ancora una volta il metodo da utilizzare dipende da come e' stata creata la copia nel passaggio precedente.

L'attuale repository contiene una directory di livello superiore per il pacchetto

Verificare come al momento appare la directory:

svn list file:///svn/collab-maint/deb-maint

Ora si è pronti per caricare il file, non è necessario creare una directory per il pacchetto in deb-maint giacché il repository la conteneva già, se ne occuperà il caricamento:

svnadmin load /svn/collab-maint --parent-dir deb-maint < dumpfile \
   > load 2> load.error

Se tutto è andato bene, il file load.error sarà vuoto e dovrebbe essere stata creata una nuova directory per il pacchetto contenente i dati del repository precedente per il pacchetto e tutte le sue revisioni. Controllare se la directory esiste:

svn list file:///svn/collab-maint/deb-maint

E se il file di registro è a posto:

svn log file:///svn/collab-maint/deb-maint/${PACCHETTO} | less

Se non risultano problemi si è dunque pronti a compiere realmente l'operazione.

L'attuale repository non contiene una directory per il pacchettoy

Verificare come al momento appare la directory:

svn list file:///svn/collab-maint/deb-maint

Prima di caricare il file di copia deve essere creata una directory per il pacchetto:

svn mkdir file:///svn/collab-maint/deb-maint/${PACCHETTO} \
   -m "Creating initial directory."

Ora si è pronti a caricare:

svnadmin load /svn/collab-maint --parent-dir deb-maint/${PACCHETTO} < dumpfile \
   > load 2> load.error

Se tutto è andato bene, il file load.error sarà vuoto e nella directory del pacchetto dovrebbe esserere state create tutte le revisioni. Controllare se la directory sia a posto:

svn list file:///svn/collab-maint/deb-maint/${PACCHETTO}

E se lo sia anche il file di registro:

svn log file:///svn/collab-maint/deb-maint/${PACCHETTO} | less

Se non risultano problemi si è dunque pronti a compiere realmente l'operazione.

Caricare il file di copia nel repository Alioth

Ora che la procedura è stata sperimentata con successo è possibile ripetere il tutto su Alioth, copiare su alioth.debian.org il file creato nel passaggio precedente ed accedervi per il resto dei passaggi. Si consiglia di verificare il file di copia con md5sum per assicurarsi che non sia stato danneggiato nel trasferimento.

Ancora una volta, il metodo da utilizzare dipende da come è stata eseguita la copia nel primo passaggio.

L'attuale repository contiene una directory di livello superiore per il pacchetto

Verificare come al momento appare la directory:

svn list file:///svn/collab-maint/deb-maint

Ora si è pronti per caricare il file, non è necessario creare una directory per il pacchetto in deb-maint giacché il repository la conteneva già, se ne occuperà il caricamento:

svnadmin load /svn/collab-maint --parent-dir deb-maint < dumpfile \
   > load 2> load.error

Se tutto è andato bene, il file load.error sarà vuoto e dovrebbe essere stata creata una nuova directory per il pacchetto contenente i dati del repository precedente per il pacchetto e tutte le sue revisioni. Controllare se la directory esiste:

svn list file:///svn/collab-maint/deb-maint

E se il file di registro è a posto:

svn log file:///svn/collab-maint/deb-maint/${PACCHETTO} | less

Se non risultano problemi si può scaricare una nuova copia del repository ed iniziare a lavorare.

L'attuale repository non contiene una directory per il pacchetto

Verificare come al momento appare la directory:

svn list file:///svn/collab-maint/deb-maint

Prima di caricare il file di copia deve essere creata una directory per il pacchetto:

svn mkdir file:///svn/collab-maint/deb-maint/${PACCHETTO} \
   -m "Creating initial directory."

Ora si è pronti a caricare:

svnadmin load /svn/collab-maint --parent-dir deb-maint/${PACCHETTO} < dumpfile \
   > load 2> load.error

Se tutto è andato bene, il file load.error sarà vuoto e nella directory del pacchetto dovrebbe esserere state create tutte le revisioni. Controllare se la directory sia a posto:

svn list file:///svn/collab-maint/deb-maint/${PACCHETTO}

E se lo sia anche il file di registro:

svn log file:///svn/collab-maint/deb-maint/${PACCHETTO} | less

Se non risultano problemi si può scaricare una nuova copia del repository ed iniziare a lavorare.

Creare una nuova directory

In alternativa, se non si dispone ancora di un repository privato e si desidera creare una nuova directory del pacchetto, è possibile effettuare le seguenti operazioni:

Creare una nuova directory in svn:

svn mkdir svn+ssh://svn.debian.org/svn/collab-maint/deb-maint/${PACCHETTO}

Scaricare questa directory per uso futuri:

svn checkout svn+ssh://svn.debian.org/svn/collab-maint/deb-maint/${PACCHETTO} ${PACCHETTO}


?CategoryAlioth