文档章节

Redmine关联Git版本库使用fetch_changesets依旧不能刷新解决方法

陌寻
 陌寻
发布于 2017/07/23 21:32
字数 466
阅读 49
收藏 0

问题:

    在redmine中配置项目的版本库为git时,第一次配置好,会自动提取git中的信息,但是之后做提交操作,使用hook调用/sys/fetch_changesets,触发刷新,redmine没有跟着更新,这是为何?

 

调查:

    尝试多次修改那个几个设置,都不起作用,最终经过尝试确认,另外也无意中看到网上有人说,需要手动到版本库路径下拉取,然后再去调fetch_changesets。也就是说redmine的fetch_changesets只是单纯的从指定的git中提取版本库信息到数据库,不会做从远程仓库拉取操作

 

解决方案:

    方案一:

     在git服务端,push的hook中添加一步,在redmine配置的版本库路径下做次拉取,然后再去fetch_changesets。

       此方案操作简单,但限制不小,要么git服务和redmine在一台机子上,方便hook直接在redmine版本库路径下pull,要么自己想法让redmine所在机器提供接口进行相应的pull

    方案二:

        修改redmine代码,lib\redmine\scm\adapters\git_adapter.rb文件def branches处

        def branches
          return @branches if @branches
          @branches = []

          
          logger.info "### this two step were added by Moxun at 2017-07-23. ###"
          logger.info "1. fetch --all"
          cmd_args = %w|fetch --all|
          git_cmd(cmd_args)

          logger.info "2. reset --hard origin"
          cmd_args = %w|reset --hard origin|
          git_cmd(cmd_args)
          logger.info "### this two step were added by Moxun at 2017-07-23. ###"

          cmd_args = %w|branch --no-color --verbose --no-abbrev|

.........

 def git_cmd(args, options = {}, &block)
          repo_path = root_url || url

          将full_args = ['--git-dir', repo_path]一行改为如下(这样命令才可以在正确的路径下执行):
          full_args = ['-C', repo_path + '/..', '--git-dir', repo_path]

          if self.class.client_version_above?([1, 7, 2])
            full_args << '-c' << 'core.quotepath=false'
            full_args << '-c' << 'log.decorate=no'
          end
          full_args += args

 

            这个是在redmine 3.4.2上修改的,不排除后续redmine后续版本此处有变化,因此后面升级还需要留意该问题

 

 

 

© 著作权归作者所有

共有 人打赏支持
陌寻
粉丝 2
博文 51
码字总数 5586
作品 0
西安
后端工程师
Bitnami Redmine 与 gerrit 整合问题解决

问题: 使用Bitnami一键安装redmine后可以正常使用,但是在整合“版本库”功能与git整合后,页面报404错误: The entry or revision was not found in the repository. 版本库中不存在该条目...

顾起威
2015/12/15
440
0
BitNami一键安装Redmine

简介 对于一个新手,如果严格按照官方文档来安装redmine,我想会“疯”掉的。有没有一种简便的方法。有滴,那就是BitNami。 BitNami提供redmine的一键安装程序,简单、易用、方便。 2. 安装 ...

shezjl
2015/05/26
0
0
redmine 中文管理员手册(redmine admin_guide)

Redmine 管理员手册 Redmine 管理员手册 基于Redmine 0.9 版本 作者: 蒋 鑫, 王 胜 公司: 北京群英汇信息技术有限公司 联系: http://www.ossxp.com/ 版本: 0.9.3-4 日期: 2010-05-26 17:05:...

openexpress1
2010/06/29
26.5K
0
快速入门系列--GIT版本控制工具

由于GIT刚刚开始使用不久,经常会在Merge时出现没有change-id的情况,在结合gerrit使用时,经常出现不能提交的情形,使得自己很困扰。最近有次熬夜加班,在代码完成后,由于多人在很短时间内...

moki_oschina
2016/11/23
10
0
1.0.CentOS 6.7 mini 安装 部署 redmine & 中文gitlab 8.6.5

安装环境与部署程序: #数据库服务器操作系统可选用windows server 或 Linux 或 其它类Unix系统。 #数据库系统可选用MySQL或PostgreSQL,这里选用MySQL 5.6 1、系统centos6系列mini安装 2、最...

ipenglei
2016/04/19
121
0

没有更多内容

加载失败,请刷新页面

加载更多

70.shell的函数 数组 告警系统需求分析

20.16/20.17 shell中的函数 20.18 shell中的数组 20.19 告警系统需求分析 20.16/20.17 shell中的函数: ~1. 函数就是把一段代码整理到了一个小单元中,并给这个小单元起一个名字,当用到这段...

王鑫linux
今天
2
0
分布式框架spring-session实现session一致性使用问题

前言:项目中使用到spring-session来缓存用户信息,保证服务之间session一致性,但是获取session信息为什么不能再服务层获取? 一、spring-session实现session一致性方式 用户每一次请求都会...

WALK_MAN
今天
6
0
C++ yield()与sleep_for()

C++11 标准库提供了yield()和sleep_for()两个方法。 (1)std::this_thread::yield(): 线程调用该方法时,主动让出CPU,并且不参与CPU的本次调度,从而让其他线程有机会运行。在后续的调度周...

yepanl
今天
4
0
Java并发编程实战(chapter_3)(线程池ThreadPoolExecutor源码分析)

这个系列一直没再写,很多原因,中间经历了换工作,熟悉项目,熟悉新团队等等一系列的事情。并发课题对于Java来说是一个又重要又难的一大块,除非气定神闲、精力满满,否则我本身是不敢随便写...

心中的理想乡
今天
45
0
shell学习之获取用户的输入命令read

在运行脚本的时候,命令行参数是可以传入参数,还有就是在脚本运行过程中需要用户输入参数,比如你想要在脚本运行时问个问题,并等待运行脚本的人来回答。bash shell为此提 供了read命令。 ...

woshixin
今天
4
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部