2014-09-25 110 views
1

我有從互聯網上採取的預先提交腳本。大多數腳本在不同情況下都會失敗。我想預先提交腳本,只有在設置了需要鎖定屬性時才允許提交。這是Lock-Modify-Unlock模型。SVN需要鎖定檢查使用預先提交的鉤子

我已經在客戶端配置中啓用了自動道具並添加了* = svn:needs-lock = *屬性。

我發現的大部分腳本都在添加新文件的時候檢查需要鎖定屬性。但單獨檢查並不能解決問題。在下面提到的情況下,我們可以避免鎖機制。

1)開發人員可以在編輯期間取消需要鎖定屬性。 2)屬性可以單獨取出而不用修改文件。

在上述場景腳本失敗。

歡迎任何想法。

回答

1

像下面的東西應該工作。

y的在svnlook changed -t "$TXN" "$REPOS" |grep "^[AU]" | awk -F" " '{print $2}'

做 svnlook的proplist這樣-t 「$ TXN」 「$ REPOS」 「$ Y」> /tmp/prop.txt

如果(grep的 - 即「需求-lock」 /tmp/prop.txt)

然後

if echo $y | sed 's/^.*\///' | grep -i "\."; 

    then 

    echo OK 

    else 

回聲 「不允許鎖定夾$ Y」> & 2;

exit 1;

fi 

網絡

這將檢查該屬性是否被施加不上的所有文件/文件夾提交之前。如果您需要從中排除文件夾,則需要添加一個條件來檢查其文件夾或文件是否相應。

+0

謝謝,你的幫助真的很感激。很抱歉再次問,我們如何避免提到的目錄? – Abin 2014-09-29 07:34:40

+0

阿賓 - 我剛剛在上面做了一個編輯。對不起,我沒有更好的方法來檢查文件夾。但是,在上面我只是檢查,如果一個點(。)存在,它是一個文件,如果沒有,它的文件夾。如果你有更好的方法,請在這裏發帖。謝謝。 – 2014-09-29 09:44:37

+0

謝謝,但實際上我們確實有點(。)文件夾而且我在某處讀到,文件夾總是有斜線(/),而文件名不是。是否可以檢查這個?,如果是的話:) – Abin 2014-09-29 09:57:48