我已经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>