我正在编写一个预提交钩子,以确保提交特定分支满足某些标准。为此,我需要找出提交的目标分支。
我正在使用调用Python脚本的Windows批处理文件。我正在使用SVN Python绑定api,这是一个严重的文档。源代码可以在Python zip文件中找到:http://sourceforge.net/projects/win32svn/files/1.7.8/apache24/。所以你知道我的意思是哪个api。
我发现了有关此主题的另一个问题:SVN Pre-commit hook for avoiding commits to specific branches。但是,我真的不明白答案,也不知道如何使用我可用的工具和Python实现这一目标。
答案 0 :(得分:1)
我已经编写了Perl hook,它已完全符合您的要求。
您可以通过创建控制文件来指定谁可以在哪里提交:
[FILE All developers can commit to the trunk]
match=/trunk/**
access=read-write
users=@ALL
[FILE All branches are locked. You do not have access to them]
match=/branches/**
access=read-only
users=@ALL
[FILE Only bob and carol can commit to the 3.2 branch]
match/branches/3.2/**
access=read-write
users=bob,carol
您还可以创建组,并使用它们:
[GROUP branch-committers]
users=bob,carol
[FILE Only the branch-committers can commit to the 3.2 branch]
match/branches/3.2/**
access=read-write
users=@branch-committers
并且,如果您在Subversion服务器上安装Perl的Net::LDAP
模块,则可以使用Windows Active Directory组。
Perl是开源的,可以从Strawberry Perl或Active State免费获得Windows。