para - git-svn fusiona 2 ramas svn
github cmd (3)
git merge
debería ser capaz de detectar (hasta cierto punto) cambia el nombre.
recursive
Esto solo puede resolver dos cabezas usando un algoritmo 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 predeterminada al tirar o fusionar una rama.
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 menos capaz (SVN), se recomienda que todos los usuarios de
git svn
clonen, obtengan y comprometan directamente desde el servidor SVN, y eviten todas las operaciones de git clone / pull / merge / push entre git repositorios 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 repositorio 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 rama git que es un espejo de una rama SVN, dcommit puede comprometerse con la rama incorrecta.
Si se fusiona, tenga en cuenta 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 rama de SVN.
Estoy usando svn. Tengo dos ramas y en ambas se realizaron muchos cambios. Además de una de las ramas, se cambiaron muchos archivos, por lo que ahora svn no puede ayudarme a fusionar los cambios en esos archivos (bien sé la limitación de svn).
- ¿Es posible usar git-svn para realizar la fusión de las ramas?
- ¿Git-svn también manejará los archivos renombrados?
Gracias
una vez tuve el mismo problema en un proyecto en la universidad. Lo que hice fue lo siguiente:
- crear un nuevo repositorio git-svn (
git svn clone -s https://…
) - fusionar las ramas con git (
git checkout master; git merge branch
) - revise el tronco con svn (
svn co https://…/trunk
) - copiar sobre los archivos fusionados de git
- borre los archivos y directorios restantes con svn (
svn rm
) - cometer con svn (
svn ci
) - buscar el nuevo compromiso en git
Utilice las funcionalidades de fusión SVN para fusionar las ramas SVN, será más rápido. Usar Git para estos problemas es bastante complejo, crea demasiados conflits ...