Domanda

Ho un ramo in un repo svn mal strutturato che ha bisogno di essere messo a nudo fuori e si è trasferito ad un altro repository SVN. (Sto cercando di ripulirlo un po ').

Se faccio un svn log e non fermo sulla copia / rinomina posso vedere tutto 3427 commit che mi interessa. C'è qualche modo per scaricare le revisioni fuori, a corto di scrivere alcuni importanti scritti?

Vorrei seguire i consigli in questa domanda ma questo ramo è stato spostato in tutto il luogo e vorrei preservare le mosse pure.

È stato utile?

Soluzione

Credo che questo potrebbe essere simile a quello che @ZacThompson (e @Pekka) significano: Penso svndumpfilter è tuo amico

.

Dalla tua domanda penso che tu abbia l'idea di che cosa si intende fare, ma lottare con la copia / spostamento del ramo tutto il luogo? Una risposta a questa può essere trovata nella prima citato SVN Documentazione , credo:

  

Inoltre, percorsi copiati possono dare qualche   guaio. Subversion supporta la copia   operazioni nel repository, dove   nuovo percorso viene creata copiando un po '   percorso già esistente. È possibile   che ad un certo punto nel corso della vita di   il repository, si potrebbe avere copiato   un file o una directory da una certa posizione   che svndumpfilter è escluso, ad un   posizione che è compreso. Produrre   i dati discarica autosufficiente,   svndumpfilter bisogno di mostrare ancora il   aggiunta del nuovo percorso, compreso il   il contenuto di tutti i file creati dal   copia-e non rappresentano che l'aggiunta   come una copia da una fonte che non lo farà   esistono nei dati di dettagli filtrati   ruscello. Ma poiché il Subversion   formato dump repository mostra solo ciò che   è stato cambiato in ogni revisione, la   contenuto della sorgente di copia non potrebbe   essere prontamente disponibili. Se si sospetta   che si dispone di tutte le copie di questo tipo   nel repository, si potrebbe desiderare di   ripensare il set di incluso / escluso   percorsi, forse tra i sentieri   che serviva come fonti di vostra   le operazioni di copia fastidiosi, anche.

Significato: fare svndumpfilter includono tutti percorsi ramo mai vissuto a. O mi sto perdendo qualcosa?

Un'altra possibilità potrebbe essere l'svndumpfilter2 citato da @compie nel thread si è collegato anche se credo che non è nemmeno necessario (e non so neanche di @compie o svndumpfilter2).

Altri suggerimenti

Si vuole utilizzare una combinazione di:

  1. svnadmin dump
  2. svndumpfilter
  3. carico svnadmin

Se si vuole fare l'intero ramo, si può nemmeno bisogno svndumpfilter. Ma se si fa:

http: / /svnbook.red-bean.com/nightly/en/svn.reposadmin.maint.html#svn.reposadmin.maint.filtering

C'è un'altra soluzione che è piuttosto semplice e risolve il "preservare le mosse" problema. Si prega di consultare l'ultimo paragrafo della subversion FAQ ingresso "Come faccio a rimuovere completamente un file dalla cronologia del repository ? ". La soluzione non si basa sul svndumpfilter.

È possibile effettuare le seguenti operazioni:

  1. Configura percorso a base di autorizzazione regole per negare l'accesso in lettura per un USERNAME account per PERCORSI del file o una cartella che si desidera rimuovere dalla storia repository.

    Si prega di notare il sostantivo plurale percorsi . Il file o la cartella che si desidera sbarazzarsi di potrebbe avere nomi diversi o può essere situato in luoghi diversi attraverso una storia repository. Si prega di prendere in considerazione questo quando si imposta regole di negazione.

  2. Crea un repository vuoto,

  3. Replicare repository di origine con svnsync strumento per il repository di destinazione in conto USERNAME . Per i dettagli sulla sincronizzazione repository con svnsync consultare SVNBook capitolo "Repository replica" .

A differenza svndumpfilter, svnsync traduce automaticamente le operazioni svn copy con un percorso di origine illeggibile in estensione normale, che è utile se la storia comporta operazioni di copia e deve ancora essere filtrato. :)

È necessario utilizzare hotcopy per il backup della directory di repository. Allora dovrebbe essere una questione di semplice ripristino del repository.

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