覆盖预提交钩子或以某种方式使SVN快乐

时间:2016-10-29 22:30:49

标签: svn

我对一个看起来非常奇怪的问题感到困惑。 我检查了主干,然后想将它提交到另一个文件夹 但我偶然发现了一个名为“pre-commit hook”的东西。 当我试图提交时,我收到了这条消息:

  

提交失败(详情如下):提交被预提交挂钩阻止   (退出代码1)带输出:   ************************************************** *************只能为。(sql | vbs | nsh | nsi)$ typ文件提交UTF-8文件。您   试图承诺   请/ product / trunk / somefile.sql   将其转换为UTF-8。 - 谢谢! :)   ************************************************** *************如果要打破锁定,请使用“检查修改”对话框或   存储库浏览器。

screenshot

奇怪的是,如果这些文件不打算存在,那么这些文件成为存储库的一部分(但是,这些策略可能会在这些文件成为重新存储的一部分之后应用?)

我是否需要遵循这些规则并转换ANSI - > UTF-8。 我甚至在python中有一个脚本,它使用notepad ++ API将具有所需扩展名的文件转换为UTF-8?这是唯一的方法吗?另外,我不知道有多少种预提交锁具有存储库?因为,我相信在发布exe文件> 2MB时也会有一个钩子。所以可能会有很多钩子......并且可能需要数天才能实现最终将源代码推送到repo的目标。

谢谢!

1 个答案:

答案 0 :(得分:3)

您无法从客户端覆盖挂钩脚本,所以是的,您需要将所有文件转换为UTF-8,就像消息所示。

要了解您的存储库具有哪些预提交挂钩脚本,您必须询问您的存储库管理员。可能有很好的理由来实施。

  

实现最终将源代码推送到repo的目标可能需要数天时间。

您最好的解决方案是不要绞尽脑汁,而是要了解提交到您的存储库的规则是什么,并确保在提交之前您已经满意。这比调试它更有效,并试图弄清楚你需要做什么才能通过预提交检查。