Me gustaría ejecutar un script que genere la documentación para mi proyecto php. Básicamente, solo está usando wget para ejecutar phpdoc.¿Puedo ejecutar un script cuando me comprometo a la subversión?
Respuesta
Aquí es bastante extenso tutorial sobre SVN hooks
(respondiendo a mi propia pregunta, pensé que otros les gustaría saber también). Sí, y también TortoiseSVN lo admite. La palabra que estás buscando es 'ganchos'.
Para TortoiseSVN, abre la configuración y 'Hook Scripts'. Haga clic en 'Agregar ...' y seleccione pos_commit_hook (para ejecutar después de que se haya completado la confirmación). A continuación, agregue el script que esté ejecutando y la ruta de trabajo del script.
Utilicé un archivo por lotes y llamé wget (hay una versión de Windows portada, google). Para obtener wget para almacenar el registro de phpdoc en una ruta específica, debe especificar la ruta completa, de lo contrario el registro se almacena en la carpeta actual desde donde se cometió, por lo que mi archivo por lotes es el siguiente:
SET BUILDLOG=%~dp0%build_log.html
rem %~dp0 returns the full working path *of this script*
SET PHPDOCURL=http://localhost/PHPDocumentor/docbuilder
SET PHPDOCCONFIG=yourconfigfile
wget -O %BUILDLOG% "%PHPDOCURL%/builder.php?setting_useconfig=%PHPDOCCONFIG%&setting_output=HTML%3ASmarty%3Adefault&ConverterSetting=HTML%3ASmarty%3Adefault&setting_title=Generated+Documentation&setting_defaultpackagename=default&setting_defaultcategoryname=default&interface=web&dataform=true"
Ahora, cada vez que confirma, se llamará al script por lotes. Por supuesto, también puedes usar php como una herramienta de línea de comandos, pero no he investigado eso con phpdoc, simplemente tomé el camino de menor resistencia en este caso.
Es posible que desee consultar Phing para obtener una herramienta completa de creación de secuencias de comandos. Puede gestionar confirmaciones, documentación y otras actividades relacionadas con la compilación en un solo lugar.
Una alternativa para usar ganchos SVN sería utilizar un motor de integración continua. Personalmente, soy un fan de Hudson. CruiseControl es el clásico, pero hay una plétora de others.
¿Por qué utilizar un motor de integración continua? En general, son más potentes, cuentan con muchas funciones y son más portátiles que simplemente usar los ganchos SVN (¿y si quieres cambiar a usar Mercurial, Git, etc.?).
- 1. Git - ¿Los colores significan algo en vi cuando me comprometo?
- 2. ¿Debo devolver la devolución si nunca me comprometo?
- 3. Git: cómo es una rama a la que no me comprometo antes del origen/maestro
- 4. ¿Cómo puedo forzar a subversión a enviar un archivo desactualizado?
- 5. PHP ejecutar un script cuando caduque una sesión
- 6. ¿La subversión es externa a un antipatrón?
- 7. ¿Cómo puedo ejecutar un script PHP desde Java?
- 8. ¿Cómo puedo ejecutar de forma remota un script en Windows?
- 9. ¿Ejecutar un script al desbloquear?
- 10. Ejecutar un script bash desde un script R
- 11. Ejecutar el comando cuando se detiene el script bash
- 12. ¿Puedo ejecutar 'su' en el medio de un script bash?
- 13. ¿Puedo ejecutar un script de Python como servicio?
- 14. Llamar a la función Lua sin ejecutar el script
- 15. ¿Cómo ejecutar un script python desde java?
- 16. Ejecutar un script como root a través de ADB
- 17. Script Bash para ejecutar el script php
- 18. SVG: ejecutar el script cuando el documento se ha cargado
- 19. Recibí un error cuando me conecté a 'www.google.com' use NSConnection
- 20. Cómo puedo llamar a un archivo desde la misma carpeta en la que me encuentro (en script)
- 21. ¿Cómo ejecutar un script PHP grande?
- 22. Adobe InDesign .jsx script ejecutar .jsx script
- 23. BASH cómo ejecutar un comando en la terminación del script?
- 24. script PHP a ejecutar en determinados momentos
- 25. Agregar archivos no versionados a la subversión
- 26. Me aparece un error "destino de hipervínculo desconocido 0" cuando intento ejecutar un informe de Jasper
- 27. cómo ejecutar automáticamente un script bash cuando mis trabajos qsub se terminan en un servidor?
- 28. ¿Necesito un PUERTO cuando me uno a un grupo de multidifusión o solo a la IP?
- 29. Ejecutar un script SQL almacenado como recurso
- 30. ¿Cómo ejecutar un script de PowerShell?