redmine 集成 git

参考:http://fableking.iteye.com/blog/1163590


相信 Redmine 是很多人在使用的档案管理系统,而Git,相信也是各种SCM里的大宗,而应该满多人使用 gitolite 来管理自己的git remote server的。


之所以写这篇,是因为在整合两者的时候,碰到了gitolite 的repo 权限问题。

所以这篇就来简单的讲解一下如何在Redmine 里面加入使用gitolite 管理的Repository , 可在Redmine 直接查看Source Repo,以及作为Code Review 之用。

首先我们要了解的是,Redmine仅能透过档案系统来存取本地的Git Repo,它并没有办法透过Git protocol来存取远程的Repository。但是就算是Local的Repo ,在gitolite的管理之下,Redmine还是没有权限去存取gitolite控制的Repository。

因此首先我们要制作一个Redmine 可以存取的镜像Repo。从Git 1.6 开始我们可以直接从一个bare repository clone 生成另一个bare repository。

首先建立一个文件夹来存放我们待会要clone 的repository。

*这边开始以  /var/git-miroors  文件夹为例子:



再来我们要使用  git clone --mirror  建立一个原始repo的镜像:



接下来下一步,由于之后  git  使用者会透过post-receive  hook来同步两个repository,我们直接修改这个镜像

repository的owner / group为  git  来让它有读写权限。



再来我们要设定原本repo的hooks



在hook  post-receive  设定git push到镜像repo的动作:



建立完  post-receive  文件后修改权限:



由于Git 在做mirror push 的时候,会保留原始的档案与文件夹存取权限,在gitolite 管理下,只有owner 有读写权限,所以一做mirror push 这个镜像的repository 就没办法被其他process 读取到了,所以我们一开始就要告诉这个mirror repository 它是被分享的,并且设定它应该要有的存取权限:



然后在Redmine 的Project / Settings / Repository 里,设定路径:



点选Project / Repository 等待一下,让Redmine 处理Repository 的信息,然后看到Repo 的信息:


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值