如何在SVN中实现一个预提交钩子脚本来调用dos2unix以验证提交的文件
我想知道这里有没有人有写这种脚本的经验,可以给我一些建议。
我想修改这个脚本,用来检查提交的文件在行尾格式上是否有回车符。行尾格式在Windows系统中是CR LF,而在Unix系统中是LF。当用户用Windows格式提交代码时,这在Unix上就无法编译了。我知道这可以在客户端完成,但我需要在服务器端进行这个检查。为了实现这个目标,我需要做以下几件事:
1) 确保我检查的文件不是二进制文件,我不知道怎么用svnlook来做到这一点,我是不是应该检查文件的mime:type?《红皮书》没有明确说明这个,或者我可能没看到。
2) 我想运行dos2unix命令来验证文件的行尾格式是否正确。我会将dos2unix命令的输出与原始文件进行比较。如果两者之间有差异,我就会给客户端发出错误信息,并取消提交。
我希望能听到你们对这个方法的看法和反馈。
2 个回答
4
我觉得在这种情况下,你可以通过使用 svn:eol-style
属性来避免使用提交钩子脚本,具体内容可以参考SVN书籍中的说明:
这样一来,SVN就可以帮你处理行尾的问题了。
祝你好运!