我们目前在checkout-modify-merge机制中使用SVN,而是想重新配置SVN服务器,以便我们将其更改为lock-modify-unlock机制。我们使用Tortoise SVN客户端,我看到可以单独更改单个文件的属性来强制执行“需要锁定”属性,但这太费力了,而我正在寻找一些方法,我们可以通过它来改变svn服务器端导致所有文件应用“needs-lock”属性。谢谢你的帮助!
答案 0 :(得分:0)
阅读Automatically add svn:needs-lock
由于您使用Tortoise SVN,因此您应该特别阅读有关tsvn:autoprops的部分。
答案 1 :(得分:0)
在服务器端,您无法更改此类内容。什么可以阻止人们通过Hook脚本检查没有属性(svn:needs-lock)设置的文件。但这并不是推荐使用SVN的方法。
答案 2 :(得分:0)
最好的选择是强制所有已提交的文件具有svn:needs-lock属性。有几个关于如何做到这一点的链接。
以下是一些handy scripts and hooks for windows。
对于unix,这里有http://www.codenition.com/shell-script-to-enforce-svnneeds-lock的变体,它实际上有效(在分叉的while循环中退出1的行为不符合预期)。
将以下代码添加到/ path / to / repo / hooks / pre-commit
# Make sure every file has the svn:needs-lock property set
while read REPOS_PATH
do
if [[ "$REPOS_PATH" =~ "^(A|M|U)[[:blank:]]{3}(.*)" ]]; then
if [ ${#BASH_REMATCH[*]} -ge 2 ]; then
if [ -z "`$SVNLOOK propget -t \"$TXN\" \"$REPOS\" svn:needs-lock \"${BASH_REMATCH[2]}\"`" ]; then
STATUS="1"
echo "$REPOS_PATH must have the svn:needs-lock property set">&2
exit 1
fi
fi
fi
done <<< "`$SVNLOOK changed -t "$TXN" "$REPOS"`"