我需要对正在提交的任何 javascript 文件运行 CVS 预提交脚本。该脚本基本上运行 JS Hint 以确认任何 JavaScript 代码都处于良好状态。问题是我无法在拥有 CVS 存储库的同一台机器上安装 JS Hint。我想出的最简单的解决方案是使用预提交脚本在另一台安装了 JS Hint 的机器上 ssh JS Hint 命令。我的问题是我不确定如何将文件的新内容传送到远程机器,因为它还没有提交给 CVS。CVS 机器是否有办法从预提交脚本中访问新内容?
1 回答
Commitinfo 提供了正则表达式参数,如果匹配,将在这些文件上运行您的命令,根据以下内容:
http://durak.org/sean/pubs/software/cvsbook/The-commitinfo-And-loginfo-And-rcsinfo-Files.html
提交信息
cvs commit'即将commitinfo' file defines programs to execute whenever
执行。这些程序用于预提交检查,以验证修改、添加和删除的文件是否真的准备好提交。例如,这可用于验证更改的文件是否符合您网站的编码实践标准。
如前所述,“commitinfo”文件中的每一行都包含一个正则表达式和一个命令行模板。模板可以包含程序名称和您希望提供给它的任意数量的参数。当前源存储库的完整路径附加到模板,后跟提交中涉及的任何文件的文件名(添加、删除和修改的文件)。
将使用与模块的相对路径匹配的正则表达式的第一行。如果命令返回非零退出状态,则提交将被中止。
如果存储库名称与此文件中的任何正则表达式都不匹配,则使用“DEFAULT”行(如果已指定)。
所有出现的名称ALL' appearing as a regular expression are used in addition to the first matching regular expression or the name
DEFAULT'。
注意:当 CVS 访问远程存储库时,`commitinfo' 将在远程(即服务器)端运行,而不是客户端(参见远程存储库部分)。
来自:http ://herbert.the-little-red-haired-girl.org/html/cvs/cvs_18.html