2010-09-20 21 views
1

我們目前在checkout-modify-merge機制中使用SVN,相反我想重新配置SVN服務器,以便我們將其更改爲鎖定 - 修改 - 解鎖機制。我們使用Tortoise SVN客戶端,我發現可以單獨更改單個文件的屬性來強制執行「需要鎖定」屬性,但這太費力了,而我正在通過某種方式來查看我們可以改變svn服務器端導致所有文件應用「需要鎖定」屬性。謝謝您的幫助 !設置SVN服務器,以啓用版本控制的鎖定 - 修改 - 解鎖機制

回答

0

在服務器端,你不能改變這樣的事情。什麼是可能的,以防止人們通過Hook腳本檢查沒有屬性(svn:needs-lock)設置的文件。但這不是推薦使用SVN的方式。

0

最好的選擇是強制所有提交的文件具有svn:needs-lock屬性。有幾個關於如何做到這一點的鏈接。

這裏有一些handy scripts and hooks for windows

對於unix,這裏是http://www.codenition.com/shell-script-to-enforce-svnneeds-lock的一個變種,它實際上起作用(在forked while循環中退出1的行爲並不像預期的那樣)。

下面的代碼添加到/路徑/到/回購/鉤/預提交

# 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"`"