Migrare o copiare un repository SVN, completo o in parte | Ing. Eugenio Bonifacio
Tags: applicazioni sms, applicazioni web, cataloghi elettronici, commercio elettronico, consulenza agenzie web, consulenza opensource, consulenza oscommerce, consulenza Drupal, consulenza Wordpress, consulenza Zend Framework, e-commerce, portali web, sistemi di prenotazione, sistemi informativi, siti web comiso, siti web ragusa, siti web sicilia, software personalizzati, sviluppo firmware, programmatore php freelance, sviluppatore zend framework, sviluppatore doctrine, programmatore zend framework, programmatore doctrine, sviluppatore cakephp
23
Set 12

Migrare o copiare un repository SVN, completo o in parte

 

Uno dei miei primi repository SVN si è rivelato un po' male organizzato. Avevo una struttura di primo livello classica branches, tags, trunk. Nel ramo di sviluppo avevo messo due progetti che hanno preso strade diverse e indipendenti. Inoltre anche i rami dovevano essere distinti per progetto. Approfittando di una revisione generale dei repository ho deciso di separarli, prevedendo un repository per progetto, ovviamente volevo mantenere la storia di ognuno. Cercando sul web qualcosa che facesse al caso, mi sono imbattuto in un quesito simile posto su stackoverflow, utilissimo come sempre, che potete trovare quiRiporto la procedura.

 

Trattandosi di operazioni di amministrazione, devono essere fatte da un utente root attraverso gli strumenti di amministrazione di subversion. La sequenza delle operazioni è la seguente:

  1. Estrazione del dump del repository originario.
  2. Creazione di un nuovo repository dove accogliere il dump del precedente.
  3. Filtraggio di eventuali percorsi da includere o escludere dal dump con la creazione di un dump intermedio.
  4. Importazione del dump filtrato nel nuovo repository.  

svnadmin dump /svn/vecchio_repo > ./repository.dump
 
svnadmin create /svn/nuovo_repo
 
svndumpfilter include percorso/da/estrarre --drop-empty-revs --renumber-revs --preserve-revprops < ./repository.dump > ./filtrato.dump
 
svnadmin load /svn/nuovo_repo < ./filtrato.dump