设置SVN服务器以启用版本控制的锁定-修改-解锁机制
我们目前正在签出-修改-合并机制中使用SVN,我想重新配置SVN服务器,以便将其更改为锁定-修改-解锁机制。我们使用Tortoise SVN client,我发现可以单独更改单个文件的属性来强制执行需求锁属性,但这太费力了,我正在寻找一些方法,通过这些方法,我们可以更改SVN服务器端的某些内容,从而使所有文件应用需求锁属性。谢谢你的帮助 阅读设置SVN服务器以启用版本控制的锁定-修改-解锁机制,svn,tortoisesvn,locking,Svn,Tortoisesvn,Locking,我们目前正在签出-修改-合并机制中使用SVN,我想重新配置SVN服务器,以便将其更改为锁定-修改-解锁机制。我们使用Tortoise SVN client,我发现可以单独更改单个文件的属性来强制执行需求锁属性,但这太费力了,我正在寻找一些方法,通过这些方法,我们可以更改SVN服务器端的某些内容,从而使所有文件应用需求锁属性。谢谢你的帮助 阅读 由于您使用的是Tortoise SVN,因此您应该特别阅读有关的部分。在服务器端,您不能更改这样的内容。通过Hook脚本,可以防止人们签入没有属性svn:
由于您使用的是Tortoise SVN,因此您应该特别阅读有关的部分。在服务器端,您不能更改这样的内容。通过Hook脚本,可以防止人们签入没有属性svn:needs lock set的文件。但这不是使用SVN的推荐方法。最好的选择是强制所有提交的文件都具有SVN:needs lock属性。关于如何做到这一点,有几个链接 这里有一些 对于unix,这里有一个变体,它实际上在分叉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"`"