對不起,如果這是重複的,我仍然沒有找到正確的答案..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