我想在提交到 Mercurial 或 Git 存储库之前运行 JSLint。
我希望这是一个自动设置的步骤,而不是依赖开发人员(主要是我)记住事先运行 JSLint。我通常在开发时运行 JSLint,但想在提交到 repo 之前通过 JSLint 的 JS 文件指定一个合同。
对于 Mercurial,此页面说明了预提交语法,但似乎唯一可用的变量是提交中涉及的 parent1 和 parent2 变更集 ID。我真正想要的是与提交有关的文件名列表,这样我就可以选择 .js 文件并在它们上运行 jslint。
GIT 的类似问题,作为预提交脚本的一部分可用的默认信息似乎有限。
可能可行的是调用 hg status/git status 作为预提交脚本的一部分,解析该输出以查找 JS 文件,然后以这种方式完成工作。不过,我希望有一些更简单的东西,我不确定作为预提交钩子的一部分调用状态是否反映了正确的信息。例如,在 Git 中,如果尚未添加更改文件,但 git commit 使用 -a,这些文件是否会作为提交集的一部分显示在 git status 输出的正确部分?
更新:我得到了一些工作,在这里可以看到:http: //github.com/jrburke/dvcs_jslint/