Pregunta

Estoy muy nuevo en Subversion, pero yo he utilizado otros sistemas de control de versiones como ClearCase durante años.

Mi jefe me pidió que solucionar este proyecto para que se podía construir con Maven en lugar de hormiga. Una de las cosas importantes que tenía que hacer era a mover src/com a src/main/java/com, y mover a test/com src/test/java/com, lo que hice con el comando svn mv. Me tontos asumido que desde que utiliza comandos de Subversion para mover los directorios, que Subversion sería entonces saber que las cosas habían sido movidos. Y cuando me fundí mi rama en el tronco, que parecía funcionar. Pero ahora alguien acaba de terminar el trabajo en una rama que se bifurca antes de mi trabajo. Así que vamos a fusionar sus cosas en el tronco, y, básicamente, Subversion parece pensar “ok, se realizan cambios en src/com/foo/bar/baz.java, pero ese directorio no existe nada más, por lo que es irrelevante, por lo que se descarta que” en lugar de lo que esperaba, que era “ok, se realizan cambios en src/com/foo/bar/baz.java, pero src/com se ha movido, por lo que necesitan para combinar eso en src/main/java/com/foo/bar/baz.java.

¿Hay una manera de hacer Subversion hacer la gestión de revisiones, o voy a ser manualmente la fusión de cambios de este tipo durante los próximos dos días?

¿Fue útil?

Solución

Para responder a su pregunta directamente:

  

¿Hay una manera de hacer Subversion hacer la gestión de revisiones, o voy a ser manualmente la fusión de cambios de este tipo durante los próximos dos días?

Usted debe ser capaz de hacer que sea un poco más fácil para ti.

Una cosa que usted puede hacer para aliviar algo del dolor (suponiendo una distribución de la siguiente manera)

/branch/foo/src/com
/branch/foo/test/com
/trunk/src/main/java/com
/trunk/src/test/java/com

Antes de que movió src / com a src / main / java / com prueba y / com a src / test / java / com que podría haber hecho:

cd $TRUNK
svn merge -r N:M http://server/branch/foo .

Lo que podría hacer ahora es:

cd $TRUNK
svn merge -r N:M http://server/branch/foo/src/com src/main/java/com
svn merge -r N:M http://server/branch/foo/test/com src/test/java/com

Espero que esto ayuda a ahorrar algo de tiempo.

Otros consejos

Esto suena como un problema de una sola vez. Sugiero que usted podría utilizar svn diff > /to/some/file.patch (o diff normal) para guardar sus cambios en un archivo, y luego aplicarlo en su tronco movido con patch -p0 < /to/some/file.path.

Cualquier persona trató este software? xMerge

Este es plugin para SmartSVN pero parece que hacer el truco. Si alguien lo está utilizando estaré agradecido si me envía revisión de la misma.

Sólo tenía el mismo problema y lo resolví con git . No quería fusionarse con módulos serveral svn merge -r N:M http://server/branch/foo/test/com src/test/java/com para src/main, src/test y resources.

Así que utilicé git svn clone file:///some/repo -T trunk -b branches -t tags. Como no pude mantener master git en sincronía con tronco SVN y fusionarla con mi git branch . Cuando terminé, me fundí el git branch a master git y de allí a tronco SVN .

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