我公司的 svn 存储库中有很多 MS Word 文档。我们实施了一项政策,即所有 .doc 文件都必须设置 svn:needs-lock 属性,以防止对难以合并的文件进行并行访问(我们也对 xls、ppt、pdf 等进行了此操作)。
我们已经通过分发 svn 配置来实施该策略,该配置具有为所有相关文档类型适当设置的 auto-props。我们还设置了一个预提交钩子,检查所有添加的这些类型的文件是否都设置了需要锁定属性(即,如果他们忘记/懒得更新他们的 svn 配置文件,他们将无法将任何文档添加到 repo)。
然而,我遇到的问题是,当用户尝试将文件导入存储库时,预提交挂钩失败,例如,一些用户喜欢直接通过 TortoiseSVN 的存储库浏览器添加文件,这实际上是一个 svn 导入。
通过对其他文件类型的测试,我发现导入确实应用了我的配置中列出的自动道具,但它们似乎并没有在预提交挂钩运行时应用。导入 .doc 文件时,钩子失败,说缺少 needs-lock 属性。
将单个文件添加到工作副本并提交它与直接导入文件之间真的有很大区别吗?我们是否需要以某种方式定制我们的预提交钩子以适应这种情况?