Mi repositorio es SVN, y hago todo el desarrollo con git. Tenemos un diseño estándar, y yo inicializado mi repo local con git svn init -s <url to repo>
¿Cómo sabe git-svn a qué rama comprometerse?
Aquí está mi flujo de trabajo para trabajar con ramas:
# creates a new branch remotely
git svn branch new-branch-name
# switches to a branch or trunk locally
git reset --hard name-of-branch
git reset --hard trunk
# merge changes from trunk into a branch
git reset —hard name-of-branch
git merge trunk
git svn dcommit
Ese último comando anterior confirmar los cambios en la rama rama Nombre-del. Mi pregunta es, ¿cómo sabe esto? Cuando hago git reset --hard foo
, ¿qué ocurre exactamente?
Esto podría reducirse a una pregunta general sobre git. Cada vez que trato de buscar una respuesta me confundo sobre si la integración svn es un caso especial o no.
[1] "git-svn buscará en el árbol de commits las anotaciones de antecesor que correspondan a las ramas de SVN activas. Luego se comprometerá con ellas". - A veces adivina mal - ¿hay alguna manera de especificarlo explícitamente? [2] "este tipo de cosas pueden arruinar tu historial de SVN", por lo que la historia será unidireccional, pero la combinación de los archivos de código debería estar bien, ¿sí? –
hmm, la página man dice que '--commit-url' debe usarse solo para cambiar el transporte, y" Usar esta opción para cualquier otro propósito (no preguntar) es muy desaconsejado ". –
Si desea especificar una rama específica para comprometerse, simplemente vuelva a establecer la base de su rama de entidad en la parte superior de la rama remota correspondiente en su repositorio de Git. – cdhowie