如何在SVN中实现预提交钩子脚本,调用dos2unix来验证签入文件

时间:2008-09-07 16:32:56

标签: python svn dos2unix

我想知道这里是否有人有写这种脚本的经验,如果他们能给我一些指示。

我想修改此script以验证签入文件在EOL格式中没有回车符。 EOL格式是Windows中的CR LF和Unix中的LF。当用户使用Windows格式签入代码时。它不再在Unix中编译。我知道这可以在客户端完成,但我需要在服务器端完成此验证。为实现这一目标,我需要做以下事情:

1)确保我检查的文件不是二进制文件,我不知道如何用svnlook执行此操作,我应该检查mime:文件的类型吗? Red Book并未明确表明这一点,或者我一定没有看到它。

2)我想运行dos2unix命令来验证文件是否具有正确的EOL格式。我会将dos2unix命令的输出与原始文件进行比较。如果两者之间存在差异,我会向客户端发送错误消息并取消签入。

我希望您就此方法提出意见/反馈。

2 个答案:

答案 0 :(得分:4)

我认为在这种情况下你可以通过使用SVNBook中描述的svn:eol-style属性来避免提交钩子脚本:

这样SVN可以为您担心线路结束。

祝你好运!

答案 1 :(得分:1)

你究竟想做什么?

当然,有很多地方需要了解svn预提交钩子(例如 here hereRed Book),但它取决于你想要的东西做什么,你的系统可用什么。

你能更具体一点吗?