Ho controllato un repository svn usando git svn. Ora devo controllare uno dei rami e rintracciarlo. Qual è il modo migliore per farlo?
Ho controllato un repository svn usando git svn. Ora devo controllare uno dei rami e rintracciarlo. Qual è il modo migliore per farlo?
Risposte:
Crea un clone git che includa il tronco, i tag e i rami di Subversion con
git svn clone http://svn.example.com/project -T trunk -b rami -t tag
L' --stdlayout
opzione è una scorciatoia se il repository Subversion utilizza la struttura tipica:
git svn clone http://svn.example.com/project --stdlayout
Fai in modo che il tuo repository git ignori tutto ciò che fa il repository subversion:
git svn mostra-ignora >> .git / info / exclude
Ora dovresti essere in grado di vedere tutti i rami di Subversion sul lato git:
git branch -r
Pronuncia il nome del ramo in Subversion è waldo
. Dal lato git, avresti corso
git checkout -b telecomandi waldo-svn / waldo
Il suffisso -svn serve per evitare gli avvisi del modulo
avvertenza: refname 'waldo' è ambiguo.
Per aggiornare il ramo git waldo-svn
, eseguire
git checkout waldo-svn git svn rebase
Per aggiungere un ramo Subversion a un clone solo trunk, modificare il repository git .git/config
in modo che contenga
[svn-remote "svn-mybranch"] url = http://svn.example.com/project/branches/mybranch fetch =: refs / remotes / mybranch
Dovrai sviluppare l'abitudine di correre
git svn fetch --fetch-all
per aggiornare tutto ciò che git svn
pensa siano telecomandi separati. A questo punto, puoi creare e tenere traccia dei rami come sopra. Ad esempio, per creare un ramo git corrispondente a mybranch, eseguire
git checkout -b telecomandi mybranch-svn / mybranch
Per i rami da cui intendi git svn dcommit
, mantieni lineari le loro storie!
Potresti anche essere interessato a leggere una risposta a una domanda correlata .
--prefix=svn/
quando lo fai git-svn init
o git-svn clone
) Ciò eliminerà la necessità di aggiungere un suffisso sulle filiali locali.
show-ignore
errori vengono eliminati, provaregit svn show-ignore -i trunk