A git svn fetch
aggiunge un nuovo ramo remoto chiamato remotes/git-svn (come si può vedere con git branch -a
).
Se si apportano modifiche al svn monte, quindi eseguire git fetch
di nuovo, i cambiamenti vengono tirati (in realtà, inverosimile) in questo ramo, non sul master.
Quindi, per fare in modo che git log (e tutto il resto) funzioni correttamente sul ramo master, è sufficiente un'unione, come normalmente si dovrebbe fare dopo un recupero (questo è ciò che fa git pull, un fetch e quindi un'unione).
Poiché git svn pull non funziona, sarà necessario unirlo manualmente. Mentre sul branch master, eseguire:
git merge remotes/git-svn
Ciò si fonderà il tuo branch master con il ramo git-svn, rendendo ancora una volta tutto ok.
Quindi, in futuro, eseguire
git svn fetch
git merge remotes/git-svn
e sarete aggiornati con il repository upstream, ancora una volta.
L'impostazione del riferimento della testa del master su git-svn come suggerito da vjangus lo farà funzionare, ma non si dovrebbero mai apportare modifiche in un ramo remoto.
fonte
2012-01-23 13:53:58
Sì, hai ragione. 'git log' cerca il master ref che è il motivo per cui ha funzionato su 'git symbolic-refs/heads/master refs/remotes/git-svn'. Grazie. – vjangus
Anche questo non funziona in git 1.7.5.4 – MDCore