Domanda

Sto lavorando con un repository SVN con molti progetti. Devo spostare alcuni dei progetti da quel repository in singoli repository, uno per ciascun progetto, mantenendo la storia.

Sono stato in grado di utilizzare svnadmin dump per scaricare l'intero repository e svnadmin load in un altro repository, ma non riesco a trovare un modo per scaricare solo un progetto dal repository originale in modo da poterlo caricare nel nuovo. È possibile? Se sì, come?

È stato utile?

Soluzione

Puoi utilizzare svndumpfilter utility per fare questo. Il libro SVN ha una una buona spiegazione di come farlo.

Ad esempio, un modo sarebbe:


$ svnadmin dump /path/to/repo 
     | svndumpfilter include /proj > dump-file
$ svnadmin create /new/proj/repo
$ svnadmin load --ignore-uuid /new/proj/repo < dump-file
$ svn rm file:///path/to/repo/proj

Altri suggerimenti

Solo una piccola aggiunta alla risposta @Avi e al commento @Kit.

Se si utilizza svndumpfilter , si potrebbe perdere un commit necessario per caricare il repository ( source ).

Nel mio caso:

cat dump | svndumpfilter --drop-empty-revs --renumber-revs include trunk/project > project.dump 
svnadmin load --ignore-uuid /opt/svn/newlocation < project.dump
<<< Started new transaction, based on original revision 1 
svnadmin: File not found: transaction '0-0', path 'trunk/project'

La soluzione consisteva innanzitutto nel commit di una directory superiore trunk .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top