带有自动 Prop 和预提交钩子(Hook)的 Svn 导入

标签 svn import tortoisesvn automatic-properties

我公司的 svn 存储库中有很多 MS Word 文档。我们实现了一项政策,即所有 .doc 文件都必须设置 svn:needs-lock 属性,以防止对难以合并的文件进行并行访问(我们也对 xls、ppt、pdf 等进行了此操作)。

我们已经通过分发 svn 配置来实现该策略,该配置具有为所有相关文档类型适当设置的 auto-props。我们还设置了一个预提交钩子(Hook),检查所有添加的这些类型的文件是否都设置了需要锁定属性(即,如果他们忘记/懒得更新他们的 svn 配置文件,他们将无法将任何文档添加到 repo)。

但是,我遇到的问题是,当用户尝试将文件导入存储库时,预提交 Hook 失败,例如一些用户喜欢直接通过 TortoiseSVN 的 Repo Browser 添加文件,这实际上是一个 svn 导入。

通过对其他文件类型的测试,我发现导入确实应用了我的配置中列出的自动 Prop ,但它们似乎并没有在预提交 Hook 运行时应用。导入 .doc 文件时,钩子(Hook)失败,说缺少 needs-lock 属性。

将单个文件添加到工作副本并提交它与直接导入文件之间真的有很大区别吗?我们是否需要以某种方式定制我们的预提交钩子(Hook)以适应这种情况?

最佳答案

解决了……也是我的错。

autoprops 定义不正确。我有以下条目:

*.doc = svn:needs-lock

当我应该有的时候:
*.doc = svn:needs-lock=*

即实际上为需要锁定属性设置一个值,就像为任何其他属性(如 svn:mime-type)设置一个值。

恼人的问题是损坏的配置可以很好地用于添加操作。 autoprops 定义末尾缺少“=*”似乎并不重要。无论如何,该属性的 * 值似乎都已设置。

但是,当您进行导入时,Subversion 并没有那么好,并且不会自动修复您的 borked autoprops 设置。

我承认这是我的错,但添加和导入操作的行为应该是一致的。

关于带有自动 Prop 和预提交钩子(Hook)的 Svn 导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2505070/

相关文章:

svn - 在 Emacs 中使用 SVN 是否有很好的扩展?

ios - 通过单个 header 导入所有 header ?

sql - 通过raster2pgsql导入栅格,但出现sql语法错误

svn - 强制用户在编辑前锁定 SVN 中的文件

SVN 将一个 Repo 的分支合并到另一个 Repo 的主干中

svn - 将非标准 svn 转换为 git

svn - CruiseControl.NET 中的 Project 和 SVN workingDirectory 配置 block 有什么区别

java - 为什么 [import java.awt.*] 不包括 [import java.awt.event.ActionEvent]?

SVN不同树合并

php - 类TRAC软件