git svn rebase siempre rebases maestro?

Intento crear un repository git que tenga varias twigs que rastreen cada uno un repository svn diferente. Quiero que el maestro sea una twig de git-only, no una de las twigs de svn.

Aquí está mi configuration inicial:

$ mkdir repo $ cd repo $ git init $ touch README $ git add . $ git commit -m "Initial Commit" $ git svn init -Rsvn1 --prefix svn1/ svn://... $ git svn fetch svn1 $ git checkout --track -b svn1 svn1/git-svn 

Hasta ahora, tan bueno: git branch -a me muestra una twig local llamada master (que solo contiene el file README), una twig local llamada svn1 (que contiene mi clon repo svn) y una twig remotes / svn1 / git-svn . Puedo crear svn2, svn3, etc. repitiendo los últimos tres commands.

El problema es get actualizaciones: si ejecuto "git svn rebase" mientras tengo svn1 desprotegido, el maestro se vuelve a actualizar en lugar de svn1. Esto sucede incluso si uso "git svn rebase svn1" o "git svn rebase svn1 svn1".

¿Hay alguna manera de hacer que git svn rebase deje a mi maestro solo?

Si solo quieres get las actualizaciones de svn sin cambiar nada, utiliza el command git svn fetch . Puede usar git svn fetch --fetch-all para get actualizaciones svn de todos los repositorys svn definidos.

Si desea volver a establecer la base con otra twig en lugar de cambiar maestra a otra twig primero y solo luego ejecutar git svn rebase . Este command se rebases con HEAD actual.

Necesitas descubrir todas las twigs que tienes. Git necesita rastrear controles remotos, así que enlázalos y encuentra el que quieres refundar contra:

 $ git branch -a * master remotes/trunk $ git svn fetch $ git rebase remotes/trunk