2012-06-15 16 views
7

Sto utilizzando SubGit per sincronizzare i repository Git e SVN. Durante la clonazione di un repository Git remoto, voglio conservare tutta la cronologia di quel repository. I passi Attualmente seguo mi permettono di copiare la storia del ramo principale solo:Conversione del repository Git in SVN con SubGit

svnadmin create svn_repos 
subgit-1.0.0-EAP_1381/bin/subgit configure svn_repos 
subgit-1.0.0-EAP_1381/bin/subgit install svn_repos 
git clone svn_repos gitRepo 

cd gitRepo/ 
git remote add -f newRemote git://127.0.0.1/gitRepo 
... 
From git://127.0.0.1/gitRepo 
* [new branch]  FirstProductionTag -> newRemote/FirstProductionTag 
* [new branch]  SecondProductionTag -> newRemote/SecondProductionTag 
* [new branch]  ThirdProductionTag -> newRemote/ThirdProductionTag 
* [new branch]  bugfix  -> newRemote/bugfix 
* [new branch]  bugfix2 -> newRemote/bugfix2 
* [new branch]  master  -> newRemote/master 

git merge -s ours --no-commit newRemote/master 
git read-tree --prefix=foo/bar/ -u newRemote/master 
git commit -m "Merged new Remote into subdirectory /foo/bar" 
git push origin master 

Come posso unire le modifiche da bugfix e bugfix2 rami allo stesso tempo? Grazie!

+0

Evgeniy, cosa ne pensi cambiando il titolo della domanda? Penso che al momento non rifletta il vero problema che hai avuto. Proporrei "Conversione di repository Git in SVN con SubGit" o qualcosa del genere. – vadishev

+0

Sì, hai ragione. Grazie! –

+0

Ottimo! Grazie. – vadishev

risposta

5

Se il vostro obiettivo è quello di ottenere repository Subversion dal repository Git remoto e mantenere entrambi i repository sincronizzati, considerare effettuare le seguenti operazioni:

$ svnadmin create svn_repos 
$ git clone --mirror git://127.0.0.1/gitRepo svn_repos/.git 
$ subgit-1.0.0-EAP_1381/bin/subgit install svn_repos 
+0

Grazie! Ora funziona come richiesto. –

+0

Davvero grazie – Gromy

0

mi sono collegato a dire quelle risposta di quel vadishev ed è la soluzione più semplice per importare un repository git con una cronologia completa in svn.

Vorrei anche aggiungere che si dovrebbe richiedere solo il ramo master per mappata (intenzionalmente omettendo le altre filiali nel repo git), si deve prima clonare il repo git con la sola bandiera filiale in questo modo:

git clone git_url --branch git_branch --single-ramo target_folder

Grazie vadishev.

Problemi correlati