我想在提交到Mercurial或Git仓库之前运行JSLint。对于Mercurial和Git中的JSLint提交前钩子
我想这是一个自动设置的步骤,而不是依赖于开发人员(主要是我)记住在手之前运行JSLint。我通常在开发时运行JSLint,但希望在JS文件上指定一个合约,以便在提交到repo之前通过JSLint。
对于Mercurial,this page说明了预提交语法,但似乎可用的唯一变量是提交中涉及的parent1和parent2变更集标识。我真正想要的是与提交有关的文件名列表,以便我可以选择.js文件并在其上运行jslint。
Similar issue for GIT,作为预提交脚本的一部分可用的默认信息似乎有限。
可能的工作是调用hg status/git status作为预提交脚本的一部分,解析该输出以查找JS文件,然后以这种方式完成工作。尽管我希望能够更容易,但我不确定是否将状态作为预提交钩子的一部分反映了正确的信息。例如在Git中,如果尚未添加更改文件,但git commit使用-a,那么这些文件是否会将git status输出的正确部分显示为提交集的一部分?
更新:我得到的东西的工作,它是在这里看到:http://github.com/jrburke/dvcs_jslint/
为了完整起见,下面是一些设置[JSLint作为Subversion提交钩子]的说明(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