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

StackOverflow https://stackoverflow.com/questions/48562

  •  09-06-2019
  •  | 
  •  

我想知道这里是否有人有编写此类脚本的经验,以及他们是否可以给我一些指导。

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

1)确保我检查的文件不是二进制文件,我不知道如何使用 svnlook 执行此操作,我应该检查文件的 mime:type 吗?这 红色的书 没有明确指出这一点,或者我一定没有看到它。

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

我希望得到您对这种方法的评论/反馈。

有帮助吗?

解决方案

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

这样 SVN 就可以为您担心行结尾。

祝你好运!

其他提示

你到底想做什么?

当然,有很多地方可以了解 svn 预提交挂钩(例如 这里 , 这里, ,并且在 红色的书)但这取决于您想要执行的操作以及系统上可用的内容。

你可以说得更详细点吗?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top