mar*_*nus 5 svn permissions svn-externals
我们将svn:externals用于库的特定修订版,例如
xyzlib -r12345 https://asdf.asdf.local/xyzlib/trunk/
Run Code Online (Sandbox Code Playgroud)
当您在工作副本中对这样的已检出外部进行修改时,即使外部链接指向特定修订而不是HEAD,也可以提交.
在svn update提交后运行时,更改将在工作副本中消失,因为subversion会将所有内容还原为修订版12345.因此,您自己从未真正看到更改,但它们仍然在HEAD中,这很糟糕.
是否可以仅在外部未指向HEAD修订版时禁止提交?
对于这些类型的验证,我还建议使用预提交挂钩,但我建议使用像 SVNKit - http://svnkit.com/这样的库,而不是编写一个很容易变得无法理解的脚本(如果您了解 Java)。
我自己使用这个库编写了一些预提交挂钩,并且使用起来非常容易。您编写了一个小型的可运行 Java 程序,Subversion 从预提交挂钩中调用该程序。然后很容易提取属性或 URL 的一部分来进行验证,如果它不适用您的“规则”,则拒绝提交。
看一下 SVNLookClient 和 SVNChangeEntry 类 - 它们具有适用于最常见情况的方法(例如,提取有关正在进行的提交的信息。)