我已经设置了 redmine 并且拥有可用的 mercurial 存储库。
hg repos 位于 /home/hg/repos,因此我已将 hg 设置为所有者以便能够推送。
是否可以在 Web UI 中“创建”存储库时让 redmine 自动设置存储库?在我们的 Linux 机器上,只有一个人可以信任并拥有 su 访问权限,但应该有几个用户能够创建项目和相关存储库。最好进行设置,以便 redmine 自动创建这些存储库。
这可能吗?我的问题够清楚了吗?
答案1
是的。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-into-redmine.html
使用上述方法,您可以调用包含通常用于创建存储库的命令的 shell 脚本。这是完全可定制的。(shell 脚本只是一个具有执行权限的文件,其中包含您在命令行中键入的命令)。基本上,使用该指南创建存储库,您将调用一个脚本,该脚本cd
在该目录中以项目标识符的名称创建一个目录,然后运行。hg init
然后,您可以使用 mysql 将存储库自动添加到由项目标识符标识的项目中。
一个更优雅的解决方案是使用上述插件中的原生 Redmine 钩子,或者在插件中创建已修改页面的副本,这将自动覆盖 Redmine 核心 -http://www.redmine.org/wiki/1/Hooks
如果您需要对数据库执行任何操作,以下内容将有所帮助: https://stackoverflow.com/questions/3215902/3284099#3284099
答案2
查看存储库页面在 Redmine Wiki 上,向下滚动到 Mercurial 存储库部分,以确保您的设置正确。
然后您可以查看Mercurial 存储库的 Apache 配置在 Redmine Wiki 上确保您具有正确的设置以从 Redmine 内部获得访问控制。
Mercurial 存储库的 Apache 配置
在与“hgwebdir.cgi”相同的文件夹中创建一个名为“hgweb.config”的文件。此文件夹将是根存储库文件夹。然后使用类似以下内容编辑“hgweb.config”:
[paths]
/=/path/to/root/repository/**
[web]
allow_push = *
allowbz2 = yes
allowgz = yes
allowzip = yes
按照说明安装 Redmine.pm,并像这样配置您的 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>