2012-02-13 7 views
12

voglio spostare parte della mia SVN repo fuori sede, su un'istanza AWS & Sto seguendo questa pagina (Repository Maintenance)svndumpfilter fallisce con "percorso di origine della copia non valido ..." Errore

ho preso un dump della intero pronti contro termine (i comandi di Windows):

  • svnadmin dump c:\repo > all_repo

successivo è quello di filtrarlo, per includere solo il progetto sono interessato a (che è chiamato "M1").

  • type all_repo | svndumpfilter include M1 --drop-empty-revs > m1

So che questo è corretto, come ho fatto su alcuni degli altri progetti già.


Su questo progetto, si rompe con l'errore indicato nel titolo di questo post. Il testo esatto è:

svndumpfilter: copia non valido percorso di origine '/ personale/Richard/M1_Config'

Il processo ha tentato di scrivere ad un tubo inesistente.

La cartella che l'errore si riferisce è un programma di utilità di configurazione che ho scritto e presentato sotto la mia cartella personale, e non è sotto la root/M1 ... cartella a tutti. Non voglio includerlo nel file filtrato, ma non so come indicarlo ai comandi svn.

  1. Come posso filtrare correttamente l'intera cartella M1 e i suoi figli, escludendo completamente la cartella Personale/Richard/M1_Config?
  2. Come posso essere sicuro che il file esportato contenga le informazioni corrette per ricreare correttamente la cartella M1 sul SVN remoto?

risposta

14

A un certo punto /Personal/Richard/M1_Config è stato copiato nel percorso M1. Il messaggio di errore dice che non può eseguire la copia poiché la sorgente è stata filtrata. Controlla la revisione di cui si è lamentato svndumpfilter.

È necessario includere il percorso /Personal/Richard/M1_Config anche se non lo si desidera nell'importazione finale. È inoltre necessario includere i percorsi /Personal/Richard e /Personal poiché ciascuno risiede nel suo genitore.Il comando deve essere:

type all_repo | svndumpfilter include M1 "/Personal" --drop-empty-revs > m1 

Se avete altri percorsi, dire /Personal/James che non sono necessari e si vuole escluderli allora è possibile eseguire una seconda svndumpfilter per togliere loro:

type m1 | svndumpfilter exclude "/Personal/James" --drop-empty-revs > m1_2 
+0

C'è un modo semplice per capire che le parti delle streghe devono essere incluse. Sto lavorando con tentativi ed errori al momento. –

+0

È possibile cercare tra i gruppi di modifiche e cercare "copia da percorso" che influisce sul percorso di interesse. Puoi farlo con una ricerca di testo attraverso un file di dump, o forse con svnlook. – Craig

16

ho provato almeno 4 diverse applicazioni per farlo, l'unico che davvero lavorato stava usando svndumpfilterIN:

svnadmin dump c:\repo > all_repo 
svndumpfilter.py all_repo --repo=c:\repo --output-dump=m1 include M1 

Ecco il mio full answer on linux.

Ecco quello che ho provato e non ho lavorato:

+0

Seriamente, grazie per il post. Dopo aver passato un sacco di tempo, questa era l'unica cosa che funzionava alla perfezione. – rwb

+0

questo script ha funzionato perfettamente ... – michabbb

+0

Ha funzionato bene anche per me. –

0

mi imbatto nello stesso problema. Abbiamo molti percorsi spostati e copiati in remoto nel repository e l'unico strumento veramente aiutato è stato svndumpsanitizer Un singolo programma C per file che può essere facilmente compilato su cygwin o Linux e ha funzionato come un fascino su un file di dump incrementale di 170 GB con ~ 160.000 impegna.

Problemi correlati