zoukankan      html  css  js  c++  java
  • redmine整合GIT版本库

    redmine整合GIT版本库

     

    服务器的环境:

    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,看能否看到新提交的内容。

  • 相关阅读:
    Docker网络简介
    Dockerfile数据管理
    Dockerfile指令详解下
    Dockerfile指令详解上
    设计模式之装饰器模式
    设计模式之适配器模式
    Java NIO的工作方式
    使用Dockerfile定制镜像
    jquery+asp.net 调用百度geocoder手机浏览器定位--Api介绍及Html定位方法
    js 取父级 页面上的元素
  • 原文地址:https://www.cnblogs.com/licin/p/5912402.html
Copyright © 2011-2022 走看看