Pre Commit Hook para JSLint en Mercurial y Git

Quiero ejecutar JSLint antes de realizar una confirmación en Mercurial o Git repo.

Quiero esto como un paso automático que se configura en lugar de confiar en el desarrollador (principalmente yo), recordando ejecutar JSLint de antemano. Normalmente ejecuto JSLint durante el desarrollo, pero quiero especificar un contrato en los archivos JS que pasan a JSLint antes de comprometerme con el repositorio.

Para mercurial,esta página explica la sintaxis de confirmación previa, pero las únicas variables que parecen estar disponibles son los ID de conjunto de cambios parent1 y parent2 involucrados en la confirmación. Lo que realmente quiero es una lista de los nombres de archivos que están involucrados con la confirmación, para que luego pueda elegir el archivo .js y ejecutar jslint sobre ellos.

Tema similar para GIT, la información predeterminada disponible como parte de la secuencia de comandos precommit parece limitada.

Lo que podría funcionar es llamar a hg status / git status como parte del script de precommit, analizar esa salida para encontrar archivos JS y luego hacer el trabajo de esa manera. Sin embargo, esperaba algo más fácil y no estoy seguro si el estado de las llamadas como parte de un enlace previo a la entrega refleja la información correcta. Por ejemplo, en Git, si los archivos de cambios no se han agregado todavía, pero git commit usa -a, ¿se mostrarán los archivos en la sección correcta de la salida de estado de git como parte del conjunto de confirmación?

Actualizar: Tengo algo funcionando, es visible aquí:http://github.com/jrburke/dvcs_jslint/

Respuestas a la pregunta(3)

Su respuesta a la pregunta