Reorganizando un repositorio de subversion con sucursales.
-
03-07-2019 - |
Pregunta
Estoy intentando reorganizar un repositorio de subversion 1.6 que tiene sucursales. Parece que si mueve un archivo en el tronco y ese archivo tiene cambios en una rama, cuando esos cambios se fusionan en la rama, ya no están allí.
Intentaré ilustrar a continuación:
1. Repo before move
trunk/a.txt
trunk/b.txt
branches/feature/a.txt
branches/feature/b.txt
2. File branches/feature/b.txt is changed.
3. Repo reorganized
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/b.txt
4. Changes from trunk merged to feature
trunk/a.txt
trunk/new-location/b.txt
branches/feature/a.txt
branches/feature/new-location/b.txt
La carpeta ramas / características es una copia de troncal .
Al completar el paso 4, todos los cambios en el archivo b.txt de la rama de características ya no están allí.
Pensé que esto se solucionó en svn 1.5?
Si esta no es una opción, todavía necesito reorganizar todo mi repostorio. Hacer el movimiento cuando todas las ramas se han fusionado en el tronco no es una opción. Siempre tengo al menos 1 rama más troncal a la vez.
Solución
La fusión de archivos movidos es un problema conocido . Sin embargo, subversion le advierte con este mensaje si no encuentra el objetivo de combinación :
Se ha omitido el objetivo perdido: 'baz.c'
Si ve este mensaje, es posible que deba realizar una acción manual. Si el archivo se movió y la nueva ubicación debería recibir los cambios, entonces puede considerar hacer una fusión de subárbol entre las entidades renombradas.
No conozco ningún sistema de control de versiones que se fusione de forma automática. editar : aparece en mercurial , tal como fusiona hacer seguir copias .
Otros consejos
Proporcione detalles sobre los pasos 3 y 4. Las fusiones de Subversion no son lo mismo que las copias.
Deberá asegurarse de utilizar el método de cambio de nombre de SVN en el paso 3 para asegurarse de que la ubicación del archivo permanezca asociada a futuros cambios.
(Estoy sacando este de ... bueno, no estoy seguro de lo siguiente) Hay un problema con la ascendencia al mover / renombrar archivos. Asegúrese de que cuando fusione la opción de ignorar la ascendencia no esté seleccionada.