2017-01-25 68 views
0

我們正在準備從SVN遷移到GIT。我們所有的項目(每個項目都有分支,標籤等)都在一個存儲庫下。在遷移期間,我們想讓一些項目爲只讀。是否可以編寫SVN提交掛鉤來檢查文件是否在某個特定路徑下被更改?SVN:是否有可能阻止提交特定路徑?

解決方法:

#!/bin/sh 

REPOS="$1" 
TXN="$2" 

SVNLOOK=/opt/local/bin/svnlook 

# Committing to migrated projects to GIT is not allowed 
$SVNLOOK changed -t "$TXN" "$REPOS" | grep "\/some_path\/" && /bin/echo "This repository is read-only due to migration to GIT. Please commit to GIT repo instead!" 1>&2 && exit 1 

# All checks passed, so allow the commit. 
exit 0 

回答

1

是的,這很容易成爲可能。

pre-commit掛鉤中,您將獲取回購路徑和交易名稱作爲參數。然後,您可以使用svnlook changed -t <transaction> <repo path>獲取受影響路徑的列表,並在只更新只讀路徑時使掛鉤失敗。

相關問題