Я хочу запустить JSLint, прежде чем совершить коммит в Mercurial или Git repo.Pre Commit Hook для JSLint в Mercurial и Git
Я хочу, чтобы это было автоматическим шагом, созданным вместо того, чтобы полагаться на разработчика (в основном на меня), помня, что я запускал JSLint раньше. Обычно я запускаю JSLint при разработке, но хочу указать контракт на JS-файлах, который они передают JSLint, прежде чем он будет привязан к репо.
Для Mercurial this page описывает синтаксис precommit, но единственными переменными, которые кажутся доступными, являются идентификаторы parent1 и parent2 changeset, участвующие в фиксации. Мне действительно нужен список имен файлов, которые связаны с фиксацией, поэтому я могу выбрать файл .js и запустить jslint над ними.
Similar issue for GIT, информация по умолчанию, доступная как часть сценария precommit, кажется ограниченной.
Что может работать, так называемый статус hg status/git как часть сценария precommit, проанализировать этот вывод для поиска файлов JS, а затем выполнить эту работу. Я надеялся на что-то более легкое, хотя, и я не уверен, что если статус вызова как часть крючка precommit отражает правильную информацию. Например, в Git, если файлы изменений еще не добавлены, но git commit использует -a, будут ли файлы отображаться в правильном разделе вывода статуса git как часть набора фиксации?
Update: Я получил что-то работает, это видно здесь: http://github.com/jrburke/dvcs_jslint/
Для получения полной информации, пожалуйста, ознакомьтесь с инструкциями по настройке [JSLint в качестве подцепителя Subversion Commit Hook] (http://www.amaxus.com/cms-blog/jslint-as-subversion-hook). – 2010-03-24 08:17:56
Была такая же потребность, поэтому я написал это http://bitbucket.org/robmadole/hgjslint/ – 2010-05-13 20:34:09