1

我试图发现在颠覆中对文件实施写限制的最佳方法。

随着时间的推移,这个文件会有很多标签和分支。一个特定的用户,用户构建,必须有权访问此文件(在所有可能的分支或标签中),而没有其他权限。

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

如您所见,这不是一组有限的文件,而是一个文件,随着时间的推移,它将被复制到各种分支和标签。但是,我们可以确保文件名在文件树中是唯一的。

为了实现这个限制,在用户'build'上,对于所有名为'changelog.txt'的文件,我想实现一个预提交脚本。

这是最好的方法吗?

谢谢!

4

1 回答 1

0

最简单的方法是编写一个预提交钩子并将其放入存储库中的 /hooks 中。

Subversion 将始终将存储库目录和修订号传递给您的挂钩。

伪bash示例:

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 回答