Domanda

Sto cercando di (definitivamente) la migrazione di repository Subversion del mio gruppo a Git, ma sto correndo su problemi cercando di ripulire la sua struttura di directory non-standard.

Alcuni dei contenuti del progetto è contenuto in cartelle tronco e rami, ma non tutto. Il progetto su Subversion è disposto in questo modo:

project/trunk/
project/branches/feature_1
project/branches/feature_2
project/libraries
project/crontab
...

Dopo l'importazione, voglio che il repository Git per essere disposti in questo modo:

project/html # the content of the old trunk and branches folders
project/libraries
project/crontab
...

svn2git Correndo con le opzioni appropriate gestirà correttamente i tronco ei rami le directory, ma come posso includere anche la storia per le altre cartelle? Sembra git-filter-branch potrebbe aiutare, ma non sono sicuro come usarlo per questo.

È stato utile?

Soluzione

Importa ogni sottocartella principale del pronti contro termine in un repo git separata e quindi utilizzare il sottostruttura fusione metodo per unire i repository git in uno repo. Si può finire con un paio di commit duplicati però.

Se si dispone di molte sottodirectory si consiglia di fare un svnadmin dump, poi svndumpfilter exclude .. due volte per dividere il repo svn in due metà e quindi utilizzare la sottostruttura metodo per la fusione ri-unirsi a loro. Ciò avrebbe una storia più pulita di fare molte unioni sottostruttura.

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