Clone 版本库
如果想在Redmine上看到gitlab上的版本库,需要在redmine用户对gitlab的repository有读写权限这里我的redmine的用户是apache。
1. 创建gitlab repository的目录,并且改成跟redmine同一个用户
mkdir /opt/gitlab-repo
chown -R apache:apache /opt/gitlab-repo
chmod -R a+rwx gitlab-repo/
chown -R apache:apache /var/www/.ssh
2.创建public key:
sudo -u apache -H ssh-****** -t rsa
3. 把id_rsa.pub拷贝到gitlab的SSH key中
4. 使用 MIRROR 模式来 Clone 版本库。Mirror 模式的版本库将仅包含提交信息而不包含具体提交的文件。这样 Clone 的内容比较小,速度足够快。
cd /opt/gitlab-repo
sudo -u apache -H git clone --mirror [email protected]:kernel/hgdb-core.git purog
5. 设置默认显示的版本分支
sudo -u apache -H git symbolic-ref HEAD refs/heads/Purog_3.0
配置 Redmine
1.在redmine中指定git项目的仓库位置
在项目中新建一个对应的项目,点击配置,新建版本库
scm选择git
指定库路径,这个路径不是http的路径,而是这个仓库在redmine服务器上的文件路径
需要注意,这些文件的路径需要有读取权限,不然会显示404
配置完成之后,在redmine的版本库选卡项就可以看到git的提交历史记录了。
定时刷新版本库
有多种方法,我使用crond job
[[email protected] gitlab-repo]# cat cron_job
*/5 * * * * cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch
*/5 * * * * cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch
[[email protected] gitlab-repo]# crontab -u root /opt/gitlab-repo/cron_job
[[email protected] gitlab-repo]# crontab -l
*/5 * * * * cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch
*/5 * * * * cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch
[[email protected] gitlab-repo]# tail -f /var/log/cron
Feb 28 17:15:01 highgo crond[2406]: (root) RELOAD (/var/spool/cron/root)
Feb 28 17:15:01 highgo CROND[1443]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)
Feb 28 17:15:01 highgo CROND[1444]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)
Feb 28 17:16:27 highgo crontab[1535]: (root) LIST (root)
Feb 28 17:20:01 highgo CROND[1697]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)
Feb 28 17:20:01 highgo CROND[1698]: (root) CMD (/usr/lib64/sa/sa1 1 1)
Feb 28 17:20:01 highgo CROND[1699]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)
Feb 28 17:25:01 highgo CROND[1977]: (root) CMD (cd /opt/gitlab-repo/purog && sudo -u apache -H git fetch)
Feb 28 17:25:01 highgo CROND[1979]: (root) CMD (cd /opt/gitlab-repo/migration && sudo -u apache -H git fetch)
Feb 28 17:26:50 highgo crontab[2058]: (root) LIST (root)