如何配置Redmine以实现高级Mercurial集成¶
本指南主要参考了作者的博客:[http://yasdb.blogspot.com/2009/10/configuring-redmine-to-be-your-alll-in.html](http://yasdb.blogspot.com/2009/10/configuring-redmine-to-be-your-alll-in.html)
本指南假设您正在使用Linux系统,并按照[如何操作]指南完成了SVN仓库的创建和访问控制,包括mysql nss/pam集成。您还应该知道,本指南中提到的脚本需要修改/etc/sudoers中的2个条目,这可能会存在安全风险。它们被精心设计以避免这种情况,但如果您发现任何问题,请报告并尝试提出解决方案!
附带的脚本文件应放置在/usr/local/bin/。
您可能希望以redmine用户身份运行redmine和web服务器,本指南假设您选择了一个redmine UNIX用户。您可能需要考虑根据您的安全需求将其配置为仅支持HTTPS。作者选择了HTTPS和lighttpd。
让我们进行配置并查看环境。
在创建redmine用户后,以root身份执行以下操作。
mkdir /home/redmineusers chown -R root:root /home/redmineusers cd /home/redmineusers mkdir bin projects chown -R root:root bin chown -R redmine:root projects
在遵循上述教程后,修改shell_column属性
users.homedir_column = "/home/redmineusers/";
users.shell_column = "/bin/rbash";
还要创建以下文件
/home/redmineusers/.profile
umask 0007 export PATH=$HOME/bin/
将此文件链接到.bashrc和.bash_login。这对于SSH在环境中正常工作似乎是必要的。
在/home/redmineusers/bin/hg中创建一个符号链接 -> /usr/local/bin/hg.wrapper
现在,在/etc/sudoers中添加以下内容
redmine ALL = NOPASSWD: /usr/local/bin/createrepo ALL ALL = NOPASSWD: /usr/local/bin/fixrepoperms
现在应用附带的补丁。代码有些杂乱,但效果不错,比其他类似功能的代码要干净得多。它不大,您可以自由检查。
确保在应用补丁后重新运行create_views.sql脚本。它应该可以正常运行,现在用户必须是活跃的,而不仅仅是存在。
如果您已经完成了上述步骤,恭喜您。您现在为每个项目(其中您受到古老的UNIX权限的保护)都有一个安全、私有的沙盒环境,该环境与您的redmine用户/组数据库相关联。每个项目在创建时都会有自己的组,您必须将开发人员添加到此组以获取源代码管理访问权限。您还有一个受保护/限制的环境,供用户通过ssh进入 - 但实际上只是作为hg serve的网关。您应该能够根据您的SCM版本配置您的需求。Redmine也应该在项目创建时输入您的仓库(似乎您必须先进行提交,这样它看起来才像正常工作,这是可以理解的)。
更新者:Mischa The Evil 约14年前 · 8次修订