en git-svn, ¿cómo cambio la twig svn que rastrea una twig git?

Mi flujo de trabajo git-svn normal es hacer mi trabajo en una sucursal local, luego fusionar con master y git svn dcommit desde allí para registrar mis commits en el trunk svn.

Sin embargo, en mi sucursal local actual ( foo ) me doy count de que este trabajo estará disponible por un time antes de que me sienta cómodo comprometiéndolo con el tronco, y otros desarrolladores podrían estar involucrados en él antes de esa date. Me gustaría "respaldarlo" con una twig svn, para que mi trabajo esté en el server.

He creado una nueva twig svn ( svnFoo ) desde el tronco actual y básicamente quiero "mover" foo para que cuando svn dcommit de ello todos sus commits se svnFoo en svnFoo lugar de trunk .

¿Cuál es la mejor manera de hacer esto?

git rebase es tu amigo aquí. Suponiendo que haya creado la twig foo local desde la twig master local, y que haya hecho una git svn fetch reciente de git svn fetch para que su repository local Git conozca la twig svnFoo remota, el command mágico que desea es el siguiente:

 git rebase --onto remotes/svnFoo $(git merge-base master foo) foo 

Esto encontrará la confirmación en la que se ramificó foo desde el master , y svnFoo todas las confirmaciones desde allí hasta el encabezado de la twig foo en la parte superior de la twig svnFoo . Los subsiguientes git svn dcommit commit se comprometerán en la twig Subversion svnFoo lugar de en la troncal.