2010-12-28 6 views
10

Tengo una rama en SVN que deseo mantener actualizada con los cambios de la línea troncal. Lo que me gustaría hacer es tener un script o algo que se ejecute todas las noches y fusionarlo y luego confirmar la nueva versión de la rama si no hay conflictos de fusión, pero si hay conflictos de fusión, indíquelo de alguna manera. Encontré esto post que es de alguna manera útil aunque no hace todo.SVN: automatice la fusión de la línea troncal en la rama

No he podido encontrar una manera de determinar si hay conflictos de fusión y esto es principalmente lo que estoy buscando. Agregar creación del código y luego comprometerse con el éxito será bastante fácil en el script, pero sin tener una forma de verificar conflictos de fusión, esto no tendrá éxito.

Gracias por cualquier ayuda que ustedes puedan proporcionar!

Respuesta

10

Tuve tu mismo problema exacto, aunque no intenté automatizar la fusión porque no había muchas ramas y lo hice manualmente.

De todos modos, la mejor opción parece usar scripts. El script vinculado en tu post no hace sólo la última acción requerida: cometer

a menudo uso de Linux es así, si fuera tú, habría utilizado un script como el siguiente:

cd /path/to/branch 
svn update #just to be sure... 
svn merge --non-interactive svn://path/to/trunk 
svn commit -m "Automated commit" 

Se podría usar un comando similar con SVN para ventanas en un script por lotes

+0

Esa podría ser una solución posible porque la confirmación debería fallar si hay conflictos. Después de pensar en esto ... si intento compilar antes de comprometerme, debería fallar si hay conflictos de fusión. Entonces puedo generar un mensaje de falla desde el control de crucero. ¡Gracias por la ayuda! – BryceH

+0

En realidad, no puede comprometerse si hay conflictos de fusión no resueltos, por lo que la confirmación fallará definitivamente. Aún así, puede tratar de usar el valor de retorno de svn merge o verificar conflictos a través de otro comando que no conozco. De todos modos, olvidé agregar el distintivo --non-interactive para fusionar, porque le indicaría qué hacer en caso de conflictos. –

+0

no estoy seguro de cómo funcionaría con Jenkins/Hudson. – gnuyoga

0

Eche un vistazo a MergeFairy. Se fusionará continuamente y le enviará un correo electrónico sobre conflictos con instrucciones sobre cómo reanudar.

Cuestiones relacionadas