2013-07-02 15 views
10

Come funziona git svn fetch? Dov'è quel ramo che viene recuperato in modo che possa unire o rebase con il mio master o altro ramo? Dove vengono raccolti i dati perché git remote non mi fornisce nulla sul mio repository git svn?Git: come funziona git svn fetch?

risposta

11

Ecco come git svn fetch opere:

Quando si utilizza git-svn non devi telecomandi di il server svn come si deve quando si utilizza git, basta avere un collegamento al server remoto svn nel file di .gitconfig locale.

Se si desidera aggiornare il ramo corrente all'ultima revisione, è possibile utilizzare git svn rebase. Ma se il tuo progetto svn è grande potresti trovarti nella situazione in cui non sai se l'ultima revisione è una build di successo. E se vuoi aggiornare ad una specifica revisione che sei sicuro sia una build di successo, ad esempio usi Jenkins che ti dà l'ultima build di successo, devi prima recuperare per la revisione che vuoi e poi rebase con i commit imposti.

Per questo è possibile git svn fetch -r <revision>. Questo recupera localmente i commit fino alla revisione desiderata. Per rebase dei dati recuperati è necessario utilizzare git svn rebase -l o git svn rebase --local. Non devi essere online per fare un rebase locale.

-1

Lo strumento git-svn purtroppo non rende i rami SVN remoti in veri telecomandi Git. Sembrano telecomandi, ma in realtà non funzionano come telecomandi. git-svn tiene traccia dei rami internamente e anch'io ho trovato un po 'frustrante.

Tuttavia è possibile deviare da filiali SVN o unire da esse. Eseguire git branch -r per vedere tutti i rami di monitoraggio a distanza, compresi quelli pseudo-rami creati da git-svn:

$ git branch -r 
svn/SVNBranch1 
svn/SVNBranch2 
$ git checkout -b branch1 svn/SVNBranch1 
+0

'Dovresti essere in grado di diramarti dai rami SVN o unirli da loro, tuttavia' ... Come? –

1

Per impostazione predefinita il ramo di monitoraggio git-svn è remotes/git-svn, è possibile utilizzarlo per unire o rebase il lavoro in base alle modifiche recuperate da git svn fetch.