2009-09-16 19 views
6

Qualcuno può indicarmi la direzione giusta per migrare un repository Subversion 1.4 a Subversion 1.6 su un altro server? Apprezzerei qualsiasi aiuto che posso ottenere, non ho molta fortuna a cercarlo su Google.Migrazione da Subversion 1.4 a 1.6

+0

Per elaborare, ho già provato a fare un dump da 1.4 e caricarlo in 1.6 (che è molto nel redbook di sovversione e l'ho fatto anche prima con successo tra i server v1.4). Quando provo a caricare il file v1.4 in un server v1.6, ottengo un errore sul formato dell'intestazione del file dump. Da quello che ho letto, il layout del repository è cambiato tra 1.4 e 1.6 –

+0

Per ulteriori dettagli ancora una volta, questi due server sono su macchine diverse con sistemi operativi diversi. Il server 1.4 è un vecchio gentoo box che è mission critical e non può essere aggiornato senza il grave rischio di rompere qualcosa (che stiamo lavorando per migrare) e il nuovo 1.6 box esegue subversion su Windows Server 2003. Ho anche nessun controllo sulla nuova casella, sono solo temporaneamente consentito dall'amministratore di rete di accedervi e installare il nuovo repository per il server che ha già configurato. –

risposta

7

Prima di tutto, non sono sicuro al 100% che sia possibile spostare liberamente un file di dump tra Linux e Windows. Potrebbe essere necessario convertire le terminazioni di riga.

Successivamente, si dovrebbe provare a spostare prima il repository in formato 1.4 e quindi aggiornarlo sul posto. Un modo per fare questo, sul computer di destinazione:

svnadmin create --pre-1.5-compatible /path/to/repo 
svnadmin load /path/to/repo <dumpfile 
svnadmin upgrade /path/to/repo 

Vedere la SVN book per i dettagli di svnadmin.

+0

Questo ha fatto il trucco. Grazie gentilmente per il vostro aiuto, è molto apprezzato. –

+0

Il formato di dump è indipendente dalla piattaforma. Quindi puoi tranquillamente spostare il file dump tra Linux e Windows. – Stefan

+0

@Stefan: Grazie, pensavo lo fosse, ma non ero sicuro. – Avi

0

Assicurarsi che si tratti il ​​file di dump come file binario. Sembra un file di testo e puoi cavartela modificandolo in vari modi ... ma non è solo testo. Quindi se si è verificata una nuova conversione durante il trasferimento o qualcosa si finirebbe con un casino.

2

L'abbiamo fatto in un modo leggermente diverso: abbiamo creato un nuovo repository e utilizzato svnsync per creare un mirror del repository. Questo dovrebbe essere usato in sola lettura fino al momento in cui si desidera passare. Quindi aggiungi ganci al vecchio repository per proibire i commit (idealmente display e messaggi di errore che dicono agli utenti di trasferirsi nel nuovo repository). svnsync un'ultima volta e attiva il nuovo repository. Questo è stato molto più rapido del dumping e più efficiente in quanto abbiamo potuto recuperare e sincronizzare le ultime modifiche ai vecchi repository.

+0

È inoltre possibile eseguire dump e carichi incrementali. – retracile

+0

Questo è stato meno un problema per noi, ad es. uno dei nostri repository 1.4 aveva uno spazio su disco di> 32 GB (svn diff compresso) è quindi possibile immaginare la dimensione del dump! :-) – jdehaan