Estoy trabajando en un proyecto que usa subversion para su repositorio. Debido a que necesito hacer algunos cambios que aún no se pueden enviar al servidor svn, comencé a usar git svn
para poder hacer comprobaciones locales. Mi configuración se ve así:`git svn rebase` vs` git rebase trunk`
Sucursales: troncal (tracking svn trunk), master (muy cerca de lo que está en svn) y tema.
*------------------ trunk
\
*-----------*--------- master
\
*-------- topic
flujo de trabajo:
[on branch master]
$ git svn fetch
$ git svn rebase
$ git checkout -b topic
$ git rebase master
[hack hack hack]
$ git commit -a
[once upstream is ready for my changes]
$ git svn fetch
$ git checkout master
$ git svn rebase
$ git checkout topic
$ git rebase master
$ git svn dcommit
$ git checkout master
$ git svn rebase
$ git branch -d topic
Suponiendo que nadie se compromete a svn entre git svn fetch
y git svn rebase
, Es git svn rebase
corrida de maestro básicamente el mismo que git rebase trunk
corrida de maestro?
¿Hay un flujo de trabajo más sensato para usar? Parece que hay muchas ramas cambiantes y que se está modificando. Entiendo que deseo poder rebasar mi trabajo además de lo que haya en svn, pero parece que estoy haciendo más rebases de los estrictamente necesarios.
En la primera: Así que no necesito 'git svn fetch' antes de' git svn rebase' ... Siempre y cuando esté 'master'. Pero si estoy en 'topic',' git svn fetch' actualizará 'trunk', pero dejaré' master' y 'topic' solo. Sin embargo, nunca 'git svn rebase' mi rama de tema, solo' git rebase'. Interesante saber –
@SeanMcMillan "Siempre y cuando sea maestro": sí, esa es la idea. Y usted hace un 'maestro de pago de git' cada vez, así que ... – VonC
En el segundo: de acuerdo con los documentos,' git svn dcommit' sin una rama especificada empuja los commits en el HEAD actual, no solo en 'master'. Así que me comprometo con SVN * desde mi rama *, luego confío en 'git svn rebase' en' master' para recuperar las confirmaciones de SVN. Abandono la rama de 'tema' después de comprometerme. ¿Esto no es kosher? –