¿Por qué git svn dcommit pierde el historial de confirmaciones de fusión para sucursales locales?

StackOverflow https://stackoverflow.com/questions/425766

  •  06-07-2019
  •  | 
  •  

Pregunta

Tengo un repositorio git local creado con git svn clone . Hago una rama local, hago algunos cambios, vuelvo a master, git svn rebase y si todo está bien, fusiono mi rama nuevamente en master. Entonces el árbol se ve así:

texto alternativo http://img.skitch.com/20090108-cjguu3hcci9x2k17mcftamw8f1.jpg

A veces, más tarde, cuando git svn rebase nuevamente y obtengo algunos cambios remotos, pierde el hecho de que a_branch se fusionó en la línea principal y el árbol se ve así:

texto alternativo http://img.skitch.com/20090108-kn3bn1qgi5ijw8ja5ijkd75pa3.jpg

¿Por qué es eso? Puedo detenerlo? ¿Hay una manera fácil de saber que una rama se fusionó, o debería eliminar mis ramas cuando termine para no olvidar qué se ha fusionado y qué no?

¿Fue útil?

Solución

La página de manual de git-svn recomienda que no use merge. Este es un efecto secundario. Dado que está cambiando el nombre de la rama (git svn rebase es un poco como " git pull --rebase ") reescribe efectivamente el historial. Puede descartar cualquier confirmación local que ya esté en sentido ascendente en subversión, como la fusión, y mantener solo las confirmaciones que realmente existen en el repositorio svn. Dado que una confirmación de fusión trivial de una sucursal local no tiene equivalente en SVN, solo se compromete el " real " cambios, por lo que estos son los únicos cambios que se ven en su nueva rama maestra reforzada.

Idealmente, su sucursal local debería fusionar solo avance rápido, es decir, no se genera confirmación de fusión. Si este no es el caso, entonces debería considerar cambiar su rama local en master en lugar de fusionarla. Eso evita crear un compromiso de fusión por completo.

Otros consejos

Porque estás pasando por svn. Perderás mucha información cuando hagas eso (también pierdes al autor, por ejemplo).

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top