git-svn fusiona 2 twigs svn

Estoy usando svn. Tengo dos twigs y en ambas se realizaron muchos cambios. Además de una de las twigs, se cambiaron muchos files, por lo que ahora svn no puede ayudarme a fusionar los cambios en esos files (bien sé la limitación de svn).

  1. ¿Es posible usar git-svn para realizar la fusión de las twigs?
  2. ¿Git-svn también manejará los files renombrados?

Gracias

git merge debería ser capaz de detectar (hasta cierto punto) cambia el nombre.

recursive

Esto solo puede resolver dos cabezas usando un algorithm de combinación de 3 vías.
Además, esto puede detectar y manejar fusiones que implican cambios de nombre.
Esta es la estrategia de combinación pnetworkingeterminada al tirar o fusionar una twig.

Pero git-svn solo puede importar / exportar desde / a SVN, no hacer la fusión.
Y la fusión es engañosa:

CAVEATS

En aras de la simplicidad y la interoperación con un sistema less capaz (SVN), se recomienda que todos los usuarios de git svn clonen, obtengan y comprometan directamente desde el server SVN, y eviten todas las operaciones de git clone / pull / merge / push entre git repositorys y sucursales.
El método recomendado para intercambiar código entre git branches y los usuarios es git format-patch y git am, o simplemente'comprometing' al repository SVN.

No se recomienda ejecutar git merge o git pull en una sucursal de la que planea comprometerse. Subversion no representa fusiones de ninguna manera razonable o útil; para que los usuarios que usan Subversion no puedan ver las fusiones que hayas realizado. Además, si se fusiona o tira de una twig git que es un espejo de una twig SVN, dcommit puede comprometerse con la twig incorrecta.

Si se fusiona, tenga en count la siguiente regla: git svn dcommit intentará confirmar sobre la confirmación SVN nombrada en

 git log --grep=^git-svn-id: --first-parent -1 

Por lo tanto, debe asegurarse de que la confirmación más reciente de la sucursal a la que desea comprometerse sea el primer padre de la fusión. De lo contrario, se producirá Caos, especialmente si el primer padre es un compromiso más antiguo en la misma twig de SVN.

una vez tuve el mismo problema en un proyecto en la universidad. Lo que hice fue lo siguiente:

  • crear un nuevo repository git-svn ( git svn clone -s https://… )
  • fusionar las twigs con git ( git checkout master; git merge branch )
  • revise el tronco con svn ( svn co https://…/trunk )
  • copyr sobre los files fusionados de git
  • borre los files y directorys restantes con svn ( svn rm )
  • cometer con svn ( svn ci )
  • search el nuevo compromiso en git

Utilice las funcionalidades de fusión SVN para fusionar las twigs SVN, será más rápido. Usar Git para estos problemas es bastante complejo, crea demasiados conflits …