1

Subversion でファイルに書き込み制限を実装する最良の方法を見つけようとしています。

時間の経過とともに、このファイルには多くのタグとブランチが存在します。特定の 1 人のユーザー、ユーザー ビルドは、このファイル (考えられるすべてのブランチまたはタグ) にアクセスできる必要があり、それ以外には何もアクセスできません。

i.e., 
svn://app/trunk/changelog.txt
svn://app/branches/1.1/changelog.txt
svn://app/tags/1.2/changelog.txt
etc..

ご覧のとおり、これはファイルの有限セットではなく、時間の経過とともにさまざまなブランチやタグにコピーされる 1 つのファイルです。ただし、ファイル ツリー内でファイル名が一意であることは保証できます。

この制限をユーザー 'build' で 'changelog.txt' という名前のすべてのファイルに実装するには、事前コミット スクリプトを実装することを考えました。

これが最善の方法ですか?

ありがとう!

4

1 に答える 1

0

これを行う最も簡単な方法は、pre-commit フックを作成し、それをリポジトリ内の /hooks に配置することです。

Subversion は常にリポジトリ ディレクトリとリビジョン番号をフックに渡します。

疑似バッシュの例:

REPO="$1"
NO="$2"
AUTHOR=`svnlook author $REPO -t "$NO"`
FILES=`svnlook changed -t "$NO" "$REPO" | cut -b2-`


if echo $AUTHOR | grep -q builduser; then
    for FILE in $FILES; do
        if ! echo $FILE | grep -q changelog.txt$; then
            exit 1
        fi
    done
fi

あなたはそれの要点を理解しています、私は願っています。

于 2012-09-20T13:41:58.330 に答える