Intentando hacer una sintaxis de php check hook para un repositorio de git. Me alegré cuando encontré un fragmento de código que hace exactamente esto.git hook sintaxis check
Pero parece que el script de fragmento tiene un defecto. Ejecuta
git diff-index --cached --name-only HEAD
para obtener una lista de archivos en el índice. Ahora ejecuta php -l para cada archivo en esa lista. La falla es que un archivo puede diferir entre la copia de trabajo y el área de ensayo. Si el área de ensayo php tiene un error de sintaxis, pero la versión de copia de trabajo no lo hace, no se encuentra ningún error de sintaxis y la confirmación tiene éxito, que era lo que había que evitar.
¿Es este un problema no trivial para resolver, o hay alguna forma de ejecutar php -l en la versión provisional de cada archivo?
+1 para un gancho de trabajo. – VonC
Sí, esto lo hace mucho mejor que el gancho del artículo. – zedoo
el gancho es bastante bueno, sin embargo requiere modificaciones pequeñas para que yo pueda usarlo. No puedo obtener el nombre de archivo correcto y la extensión debido al comando 'cortar' – cwhsu