Domanda

Ho un repository Subversion vecchio ma molto importante per il quale non ho creato l'inizio della solita struttura: trunk, rami, tag. Quindi tutti i miei file per questo repository risiedono nella radice.

So come creare le nuove cartelle e spostare tutti i miei file nel trunk, ma se lo faccio perdo la cronologia del mio progetto per 3 anni, poiché "trunk" è una nuova cartella. Quindi c'è una soluzione per spostare la storia del mio intero progetto dalla radice alla cartella trunk?

Grazie!

È stato utile?

Soluzione

Sì. È possibile utilizzare svnadmin dump che scaricherà il repository insieme alla cronologia in un file. È quindi possibile utilizzare il caricamento svnadmin per caricare il file di dump nella cartella trunk. Una volta fatto, elimina i file dalla radice.

svnadmin dump REPOS_PATH [-r LOWER[:UPPER]] [--incremental]
svnadmin load REPOS_PATH

Dump Doc: http://svnbook.red-bean.com/ it / 1.1 / re31.html Carica documento: http://svnbook.red-bean.com/en/1.0 /re36.html

Altri suggerimenti

Puoi usare

svn copy http://my.server/svn/repos/ http://my.server/svn/repos/trunk/ \
     -m "Copied"

Per creare una copia dalla radice del repository (^ /) a trunk / (^ / trunk), mantenendo tutta la cronologia, inclusa quella della directory principale.

Successivamente puoi rimuovere i file e le sottodirectory nella vecchia posizione nel prossimo commit.

Non perderai la cronologia se usi i file svn mv. La storia verrà mantenuta. Quindi potresti usare il trunk svnadmin load -parent-dir per ripetere il tuo repository, ma dovrai fare nuovi checkout di tutto, dal momento che dovresti avere un nuovo UUID nel nuovo repository.

svn co http://example.com/repos/
cd repos
svn mkdir trunk tags branches
svn mv a trunk/a
svn mv b trunk/b
svn ci -m 'Moving project into trunk'

Certo, non è una soluzione ideale, ma perché non creare un repository completamente nuovo il cui contenuto è tutto il codice del vecchio repository ma formattato bene in trunk ecc. mantenendo il vecchio repository completamente separato ma rendendolo di sola lettura.

Sarebbe certamente doloroso ricordare che prima della data X è necessario cercare nel vecchio repository anziché nel nuovo se è necessario conoscere la cronologia di un elemento.

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