Enganche de confirmación de SVN: encuentre la carpeta en la que se realizó el compromiso

Nuestro repository tiene una estructura como esta:

Dev Project1 source docs ... Project2 source docs ... ... 

Después de confirmar los cambios en las fonts de Project1, nos gustaría implementar Project1 (comstackr, probar, copyr, etc.). ¿Cómo averiguar en post-commit-hook que nos comprometimos con Dev / Project1 para que podamos exportar este proyecto y ejecutar algunas tareas en él? Al comprometerse a svn (por ejemplo, usando TortoiseSVN) ir está escrito: "Comprometerse a: …" ¿Cómo encontrar ese "compromiso"?

Deberías usar

 svnlook changed -r REV REPOPATH 

en un gancho post-commit. SVN proporcionará REPOPATH y REV como arguments. Obtienes una list con todas las routes modificadas atrás (nueva línea separada). A continuación, puede usar fácilmente grep o cualquier otra cosa para search las routes modificadas.

Recuerde: comience un nuevo hilo para build / desplegar, ya que svn esperará hasta que el enlace post-commit haya finalizado (para que no vea "Revisión comprometida XX" hasta que todo esté implementado).

Recomendaría utilizar un server de continuous integration como CruiseControl.NET sobre el uso de un enlace de confirmación de input para las tareas de integración.

Estas herramientas pueden monitorear fácilmente su repository para detectar cambios debajo de las URL específicas, pero no tienen que ejecutarse con los mismos privilegios que su server de subversión. En particular, nunca pueden corromper su repository. Puede ejecutarlos en cualquier server (antiguo), mientras que puede ejecutar su repository en un server más destacado / estable / respaldado.