Redmine整合GIT版本库

Ona ·
更新时间:2024-09-21
· 577 次阅读

  服务器的环境:   Ubuntu 11.10 64位   Redmine 1.4.5.stable.10943   git version 1.7.5.4 + gitolite   前言:由于redmine的版本比较低,所以新版本的配置方法有可能有差异。请实践者留意。   redmine和git的安装过程掠过。   由于redmine中GIT插件自身对文件读写权限的限制,所以一般有2种处理方式:   1)修改已经存在的GIT版本的文件读写权限:改为redmine运行用户可以访问;   2)将GIT版本库以redmine运行用户的身份,创建在redmine安装目录中。   这2种方式,对于git+gitolite已经在运行的环境,都不适合。   所以,我们解决的思路是:以redmine运行用户身份,在redmine中创建一个新的版本库。这个版本库作为目前已经存在版本库的镜像,专门给redmine来读取变更历史。开发团队日常的提交,仍然提交到原来的版本库。利用git的hooks,将原来版本库的更新,同步到redmine里面的镜像版本库。   操作步骤:   1、在gitolite中添加redmine运行用户   例如:redmine采用apache整合的方式,默认运行用户为www-data。以www-data用户,运行ssh-keygen,生成ssh key。将~/.ssh/id_rsa.pub文件,拷贝到gitolite管理目录的keydir文件夹(需要重命名.pub公钥文件)。   cp ~/.ssh/id_rsa.pub /path/to/gitolite/admin/keydir/redmine.pub   修改gitolite的gitolite.conf配置文件,将redmine用户添加到目标版本库。   2、在redmine安装目录中创建镜像版本库   以redmine运行用户(如www-data),进入redmine安装目录,创建git项目目录。   mkdir git   cd git   git clone --mirror gituser@repo-path/repo-name.git   如果clone时,提示:   R access for leviathan/leviathan2-android DENIED to www-data   fatal: The remote end hung up unexpectedly   说明第一步为git添加用户和权限的步骤有错误,要返回检查一下。   3、修改原来版本库的hooks(*是原来的版本库,不是新建的镜像*)   切换操作系统用户到安装和创建git版本库的user   sudo su git-user-name   进入原来项目版本库目录,修改hooks文件   cd /repo-path/repo-name.git/hooks   cp post-receive.sample post-receive   修改post-receive脚本,添加:   /usr/bin/git push --mirror /repo-path-to-mirror/repo-name.git   4、修改镜像版本库的访问权限和添加原来git用户到redmine运行用户组   以redmine运行用户(如:www-data),设置版本库:   cd /path-to-mirror-repo/repo-name.git   git config core.sharedrepository 0644   以root用户,将git用户添加到redmine运行用户组   groupmod -aG www-data gituser   5、测试   在redmine中新建一个git版本库,填入镜像版本库的路径。在“版本库”Tab标签中,可以看到版本库的内容。测试git hooks:在本地开发机的git中,向版本库做一次提交。再打开redmine,看能否看到新提交的内容。  



redmine Git

需要 登录 后方可回复, 如果你还没有账号请 注册新账号