Svn Subversion删除空白提交钩子

Svn Subversion删除空白提交钩子,svn,whitespace,svn-hooks,Svn,Whitespace,Svn Hooks,JeffAtwood建议创建commit钩子,删除行和文件末尾的尾随空格 我已经搜索过了,但还没有找到一个使用pre-commithook来修改这样的文件的清晰示例。您有想要共享的脚本吗?我很确定,它不能用于修改正在进行的事务。它只能允许或拒绝提交操作。在您的情况下,您希望检查这些文件是否满足您的空白要求,如果不满足,则提交失败并显示有用的错误消息。您可以使用post-commit钩子来执行您建议的操作,但这将涉及从钩子脚本进行第二次提交,以修复第一次提交中的错误空白。我认为预提交挂钩方法更好。

JeffAtwood建议创建commit钩子,删除行和文件末尾的尾随空格


我已经搜索过了,但还没有找到一个使用
pre-commit
hook来修改这样的文件的清晰示例。您有想要共享的脚本吗?

我很确定,它不能用于修改正在进行的事务。它只能允许或拒绝提交操作。在您的情况下,您希望检查这些文件是否满足您的空白要求,如果不满足,则提交失败并显示有用的错误消息。您可以使用post-commit钩子来执行您建议的操作,但这将涉及从钩子脚本进行第二次提交,以修复第一次提交中的错误空白。我认为预提交挂钩方法更好。

在subversion中不能真正使用提交挂钩,因为如果服务器修改文件,它将与客户端上的版本不匹配。提交挂钩用于只读事件,例如生成通知消息,或者检查文件以查看是否应阻止提交

见:

钩子是由某些存储库事件触发的程序,例如创建新版本或修改未版本属性。一些钩子(所谓的“预钩子”)在存储库操作之前运行,并提供了一种方法来报告即将发生的事情,并阻止它发生。其他钩子(“post钩子”)在存储库事件完成后运行,对于执行检查但不修改存储库的任务非常有用。每个钩子都有足够的信息来说明该事件是什么(或曾经是什么)、建议的(或完成的)特定存储库更改以及触发该事件的人的用户名


不确定您在哪个平台上,但您可以使用它来执行此操作

实际上,您将编写一个脚本,使用预提交挂钩修改文件。不过,我认为在构建脚本中这样做更为正确:您并不真的想提交甚至还没有编译或运行的代码!删除空格的脚本可能会破坏某些内容,具体取决于上下文/语言