Я хочу запустить JSLint до того, как будет сделана фиксация в Mercurial или Git-репо.
Я хочу, чтобы это был автоматический шаг, который настраивается вместо того, чтобы полагаться на то, что разработчик (в основном я) не забывает запускать JSLint заранее. Я обычно запускаю JSLint во время разработки, но хочу указать контракт на JS-файлы, которые они передают JSLint, перед тем как быть зафиксированными в репо.
Для Mercurial, на этой странице прописан синтаксис предварительного коммита, но единственными переменными, которые кажутся доступными, являются идентификаторы ревизий parent1 и parent2, участвующие в коммите. Что мне действительно нужно, так это список имен файлов, связанных с фиксацией, чтобы я мог затем выбрать файл .js и запустить над ним jslint.
Аналогичная проблема для GIT , информация по умолчанию, доступная как часть сценария предварительной фиксации, кажется ограниченной.
Что может сработать, так это вызов hg status / git status как части сценария precommit, проанализируйте этот вывод, чтобы найти JS-файлы, и затем выполните эту работу. Хотя я надеялся на что-то более простое, и я не уверен, отражают ли правильные данные статус вызова как часть ловушки предварительного коммита. Например, в Git, если файлы изменений еще не добавлены, но коммит git использует -a, будут ли файлы отображаться в правильном разделе вывода состояния git как часть набора коммитов?
Обновление : у меня что-то работает, это видно здесь: http://github.com/jrburke/dvcs_jslint/