git-svn: mantener el compromiso de fusión única después de svn rebase

Estoy siguiendo este patrón para verificar mi código en feature-branch a Subversion con git-svn:

  GIT Checkout Master
 git svn rebase
 git checkout feature-branch
 git rebase master
 GIT Checkout Master
 git merge --no-ff feature-branch
 git commit - enmienda
 git svn dcommit 

(el maestro es mi sucursal de seguimiento remoto de Subversion)

Esto crea una sola fusión de compromiso en el maestro (independientemente de la cantidad de confirmaciones de git que he hecho en la twig de características) que puedo verificar en Subversion.

Sin embargo, alguien verifica el código en Subversion después de fusionar feature-branch en master, cuando ejecuto el command git svn rebase los nuevos cambios se aplican y cada commit individual desde feature-branch se aplica en la parte superior. En este punto, ya no tengo una única combinación de commit, sino cada commit que realicé en feature-branch en master.

¿Cuál es la mejor manera de lidiar con esto?

Así es como hago esto:

 git checkout feature-branch git rebase -i HEAD~10 # squash commits in my editor git svn rebase # make sure I have the latest code git svn dcommit git checkout master git svn rebase # now the feature-branch squashed commit is visible on master 

Puede hacer lo que quiera utilizando la opción --squash :

 # rebase master and then feature-branch as above git merge --squash feature-branch git commit -m "Merge from feature-branch" git svn dcommit 

Esto evita hacer que feature-branch sea uno de los padres de su nueva confirmación. Parece que los padres múltiples están confundiendo git-svn.