redmine可以自行创build回购协议吗?

我已经build立了redmine并且正在运行mercurial仓库。

hg repos位于/ home / hg / repos中,所以我把hg设置为所有者可以推送。

当在Web UI中“创build”它们时,是否可以使redmine自动设置回购站? 只有一个人可以信赖我们的Linux机器上的su访问权限,但是一些用户应该能够创build项目和相关的回购。 这将是理想的设置,以便redmine自动创build这些回购。

这可能吗? 我是否清楚我的问题?

是。 reposman.rb脚本明确是为了这个目的。

通常它是在cronjob上调用上面的脚本,即:

10 * * * * root ruby /root/redmine-1.0.0/extra/svn/reposman.rb --redmine-host http://my.redmine./ --svn-dir /data/svn/ --url my.svn.server --key=mykey --owner apache --verbose >> /var/log/reposman.log 

但是,mercurial并没有像SVN那样的等同实现( http://www.redmine.org/boards/1/topics/575 )。 可以编写自己的钩子来完成这个任务。 如果你不介意修改Redmine核心,那么你可以使用这里的信息作为这个问题的最小途径: http : //joshua-enfield.blogspot.com/2010/09/adding-your-own-hooks-到-redmine.html

通过上述方法,您可以调用一个包含您通常用来创build存储库的命令的shell脚本。 这是完全可定制的。 (一个shell脚本只是一个包含命令的执行权限的文件,就像你在命令行上input的那样)。 基本上使用该指南来创build一个仓库,你可以调用一个脚本,该脚本通过项目标识符cd的名称创build一个目录到该目录中,然后运行hg init然后,你可以使用mysql将仓库自动添加到项目标识的项目标识符。

更优雅的解决scheme是在插件中使用上述本地Redmine挂钩,或者在插件中创build修改页面的副本,该插件将自动覆盖Redmine核心 – http://www.redmine.org/wiki/1/Hooks

如果你需要对数据库做任何事情,下面的内容是有帮助的: https : //stackoverflow.com/questions/3215902/3284099#3284099

查看Redmine Wiki上的Repositories页面 ,向下滚动到Mercurial repositories部分,确保您的设置正确无误。

然后,您可以在Redmine Wiki上查看Mercurial存储库的Apacheconfiguration,以确保您拥有正确的设置,以便从Redmine中获得访问控制。

Mercurial存储库的Apacheconfiguration

在与“hgwebdir.cgi”相同的文件夹中创build一个名为“hgweb.config”的文件。 此foder将是根存储库文件夹。 然后用这样的东西编辑“hgweb.config”:

 [paths] /=/path/to/root/repository/** [web] allow_push = * allowbz2 = yes allowgz = yes allowzip = yes 

按照说明按照说明安装Redmine.pm并像这样configuration你的apache。

 RewriteEngine on PerlLoadModule Apache2::Redmine PerlLoadModule Authen::Simple::LDAP ScriptAliasMatch ^/hg(.*) /path/to/the/hgwebdir.cgi/$1 <Location /hg> AuthType Basic AuthName "Mercurial" Require valid-user #Redmine auth PerlAccessHandler Apache::Authn::Redmine::access_handler PerlAuthenHandler Apache::Authn::Redmine::authen_handler RedmineDSN "DBI:mysql:database=redmine;host=localhost" RedmineDbUser "DB_USER" RedmineDbPass "DB_PASSWD" </Location>