Pre Commit Hook para JSLint no Mercurial e Git

Eu quero rodar o JSLint antes de um commit em um repositório do Mercurial ou do Git ser feito.

Eu quero isso como um passo automático que é configurado em vez de depender do desenvolvedor (principalmente eu) lembrar de executar o JSLint antes da mão. Eu normalmente executo o JSLint enquanto estou desenvolvendo, mas quero especificar um contrato em arquivos JS que eles passem no JSLint antes de serem comprometidos com o repo.

Para o Mercurial,esta página explicita a sintaxe de pré-consulta, mas as únicas variáveis ​​que parecem estar disponíveis são os IDs de conjunto de alterações pai1 e pai2 envolvidos na confirmação. O que eu realmente quero é uma lista de nomes de arquivos que estão envolvidos com o commit, para que eu possa escolher o arquivo .js e executar o jslint sobre eles.

Edição semelhante para GIT, as informações padrão disponíveis como parte do script de pré-qualificação parecem limitadas.

O que pode funcionar é chamar status de hg status / git como parte do script de pré-compromisso, analisar essa saída para localizar arquivos JS e fazer o trabalho dessa maneira. Eu esperava algo mais fácil, e não tenho certeza se chamar o status como parte de um gancho de pré-referência reflete a informação correta. Por exemplo, no Git, se os arquivos de mudanças ainda não foram adicionados, mas o commit do git usa -a, os arquivos aparecerão na seção correta da saída do status do git como parte do conjunto de confirmação?

Atualizar: Eu tenho algo funcionando, é visível aqui:http://github.com/jrburke/dvcs_jslint/

questionAnswers(3)

yourAnswerToTheQuestion