SVN Python预提交钩子 - 如何找出目标分支

时间:2013-06-07 14:21:17

标签: python svn pre-commit-hook pysvn

我正在编写一个预提交钩子,以确保提交特定分支满足某些标准。为此,我需要找出提交的目标分支。

我正在使用调用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实现这一目标。

1 个答案:

答案 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 PerlActive State免费获得Windows。