Acquista ramo remoto usando git svn


188

Ho controllato un repository svn usando git svn. Ora devo controllare uno dei rami e rintracciarlo. Qual è il modo migliore per farlo?

Risposte:


355

Layout Subversion standard

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' --stdlayoutopzione è 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

A partire da un checkout solo trunk

Per aggiungere un ramo Subversion a un clone solo trunk, modificare il repository git .git/configin 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 svnpensa 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!


Ulteriori informazioni

Potresti anche essere interessato a leggere una risposta a una domanda correlata .


Questo non funziona per me, dato che ho controllato il trunk usando git svn clone .. Non ho impostato i rami per il check-out ... Penso di dover prima farlo.
— markovuksanovic,

Il fatto è che ho usato git svn clone svn.example.com/project/trunk E ora non so come impostare altri rami da tracciare senza perdere il mio repository corrente ...
— markovuksanovic

20
Suggerirei di fornire un prefisso per i telecomandi svn. (aggiungi --prefix=svn/quando lo fai git-svn inito git-svn clone) Ciò eliminerà la necessità di aggiungere un suffisso sulle filiali locali.
— Jasonkarns,

Se hai diverse filiali non dimenticare di fare "git checkout master" prima di occuparti di un'altra branche
— Eildosa,

Se gli show-ignoreerrori vengono eliminati, provaregit svn show-ignore -i trunk
— Antti Haapala il
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.