对不起,如果这是重复的,我仍然没有找到正确的答案..SVN锁定目录
如何从命令行锁定svn目录?我需要锁定从签入
编辑一个分支:
所有这些问题的答案,我发现需要的人访问SVN服务器。这不是我的选择。我在一家公司里工作,在这家公司里,源代码控制机器被锁定在一个金库中。获得更改授权规则是我无法制定ATM的过程。
对不起,如果这是重复的,我仍然没有找到正确的答案..SVN锁定目录
如何从命令行锁定svn目录?我需要锁定从签入
编辑一个分支:
所有这些问题的答案,我发现需要的人访问SVN服务器。这不是我的选择。我在一家公司里工作,在这家公司里,源代码控制机器被锁定在一个金库中。获得更改授权规则是我无法制定ATM的过程。
您无法锁定目录。您可以创建授权规则,禁止对目录进行写入访问。这通常是如何完成这种类型的事情。你也可以使用预先提交的钩子,但我认为Subversion的authz是最好的。这里是一个链接:
http://svnbook.red-bean.com/nightly/en/svn.serverconfig.pathbasedauthz.html
有没有办法通过脚本来设置它,而不必编辑authz文件? 我需要临时阻塞目录以避免意外删除(例如,当执行svn rm操作时)。 – runlevel0 2014-09-05 11:19:43
我最近解决了这个由http://www.noah.org/engineering/olden/svn_directory_lock.html
在该职位的特定Python脚本是矫枉过正激发了解决方案,但我把在pre-commit钩子以下我repsoitory:
#!/bin/sh
err() { echo ${1+"[email protected]"} 1>&2; } # stderr is sent to user
REPOS="$1"
TXN="$2"
SVNLOOK=/usr/bin/svnlook
# Make sure there is a log message.
#
$SVNLOOK log -t "$TXN" "$REPOS" | grep -q "[a-zA-Z0-9]"
if [ $? -eq 1 ]
then
err "ERROR: Must enter a log message for this commit!"
exit 1
fi
# Usage: locked_dir dir [transaction_id]
locked_dir()
{
if [ -z "$2" ]; then _tid=""; else _tid="-t $2"; fi
$SVNLOOK propget $_tid "$REPOS" lock "$1" >/dev/null 2>&1
if [ $? -eq 0 ]; then echo true; else echo false; fi
}
for d in $($SVNLOOK dirs-changed -t "$TXN" "$REPOS")
do
locked_before=$(locked_dir $d)
locked_tx=$(locked_dir $d "$TXN")
if [ $locked_before = $locked_tx -a $locked_tx = true ]
then
err "ERROR: Directory $d is locked. Delete lock before you commit."
exit 1
fi
done
# All checks passed, so allow the commit.
exit 0
所以,现在,你可以简单地使用“SVN propset命令”,并致力于创建要锁定目录“锁定”属性。
http://stackoverflow.com/questions/4064229/svn-lock-branch – easel 2011-03-20 04:37:28