如何在SVN中实现预提交的挂接脚本,该脚本调用dos2unix来验证签入的文件
时间:2020-03-05 18:49:00 来源:igfitidea点击:
我想知道这里是否有人有编写这种脚本的经验,是否可以给我一些指导。
我想修改此脚本以验证签入文件没有EOL格式的回车符。 EOL格式在Windows中为CR LF,在Unix中为LF。用户使用Windows格式签入代码时。它不再在Unix中编译。我知道可以在客户端完成此操作,但是我需要在服务器端完成此验证。为此,我需要执行以下操作:
1)确保我检查的文件不是二进制文件,我不知道如何使用svnlook执行此操作,是否应该检查文件的mime:type? 《红皮书》并没有明确指出这一点,否则我一定没看过。
2)我想运行dos2unix命令来验证文件是否具有正确的EOL格式。我会将dos2unix命令的输出与原始文件进行比较。如果两者之间存在差异,我会向客户端发送错误消息并取消签入。
我希望我们对此方法发表评论/反馈。
解决方案
回答
我们到底想做什么?
当然,有很多地方可以学习svn提交前的钩子(例如,在这里,在这里和在红皮书中),但这取决于我们要执行的操作以及系统上的可用功能。
你可以说得更详细点吗?
回答
我认为我们可以通过使用SVNBook中所述的svn:eol-style
属性来避免提交钩子脚本:
- 行尾字符序列
- 颠覆属性
这样,SVN可以为我们担心行尾。
祝你好运!