一.前情提要

1.dzsw/cgd_xx项目,通过fork按钮在dzsw_dev组下面同步了一个项目

2.但是现在dzsw/cgd_xx项目因为没法提交合并请求,一点击请求就显示502。查看日志显示如下,搜索百度都是将timeout超时时间放大,但这里可能是因为没有从数据库查看对应信息出的错,不管多大都会卡主的,而且调大会导致服务器CPU和内存直线增高,用于数据库查询。

==> /var/log/gitlab/gitlab-workhorse/current <==
2020-07-24_05:41:13.93995 2020/07/24 13:41:13 error: GET "/dzsw/cgd_xx/merge_requests": badgateway: failed after 12s: EOF
2020-07-24_05:41:13.94333 47.94.250.239 @ - - [2020-07-24 13:41:01.518265528 +0800 CST] "GET /dzsw/cgd_xx/merge_requests HTTP/1.1" 502 2925 "http://1.1.1.1/dzsw/cgd_xx" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36" 12.424992 ==> /var/log/gitlab/nginx/gitlab_access.log <==
219.143.126.187 - - [24/Jul/2020:13:41:13 +0800] "GET /dzsw/cgd_xx/merge_requests HTTP/1.1" 502 2925 "http://1.1.1.1/dzsw/cgd_xx" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/73.0.3683.86 Safari/537.36"

3.本来想在数据库里删除相应项目的现存合并请求,这样应该不会查询出错了,但数据库结构复杂,关联比较多。后面想到其实可以更改fork的依赖关系,这个东西应该会在数据库存放的。

二.实际操作

1..先将dzsw/cgd_portal项目导出一份,项目-》设置-》常规-》倒数第二个导出。这里点击后不要频繁点,他会后台生成,过一会再刷新本页就在导出按钮旁边有个下载按钮了。

2.在组-》新建项目-》导入项目-》gitlab export-》导入文件即可。如果导入出错,可以尝试用fork到别的组,切断依赖关系后,将原来的备份,用新的fork回原来的。

setting-》Advanced settings-》Remove fork relationship

3.检查新项目是否和老的一样,比如分支,代码等等,确保没问题后,将原项目备份成别的名字,记得更改设置里的项目地址,然后将复制出来的给改成对应名字cgd_portal,做一个调换。设置-》常规-》高级设置-》最后一个选项里配置仓库地址,改名字的都要换地址。

4.登陆到gitlab所在机器,在数据库里执行如下,这个命令是psql数据库的非交互命令,sql语句就是查询项目表,查看他的id号。可能同名的项目有好几个(不同群组),这时候可以看看其它例如创建时间等信息,确定是你那个项目,记住id号。

gitlab-psql gitlabhq_production --expanded -c "select * from projects where name='cgd_portal' ;"

5.有主项目的id了,用如下语句来获得他fork出去那个项目的表数据,我这里主项目的id是1,复制出去的是3。

gitlab-psql gitlabhq_production --expanded -c "select * from forked_project_links where forked_from_project_id='1' ;"

6.更新表数据,将forked_from_project_id也就是他的主人换成你新建项目的id即可,sql的条件是id为1。再次查看主人换成4了

gitlab-psql gitlabhq_production --expanded -c "update forked_project_links set forked_from_project_id=4 where id='1';"

7.在从项目上,发起合并请求试试,看选项是否有多个了

Gitlab更改项目间的fork提交关系的更多相关文章

  1. 移动网络游戏实现流程——并借此阐明pomelo在GitHub上各个项目间的关系

    <!DOCTYPE html> 摘要:本文通过一个简易流程图介绍如何基于Cocos2d-x引擎和pomelo服务器框架开发一个移动网络游戏.并借此阐明pomelo提供的各个项目间的关系. ...

  2. 《Entity Framework 6 Recipes》中文翻译系列 (10) -----第二章 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射

    翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-11 两实体间Is-a和Has-a关系建模 问题 你有两张有Is-a和Has-a ...

  3. Entity Framework 实体间的外键关系

    EF 默认是开户级联删除的,这此规则将会删除非空外键和多对多的关系,如果 在数据库上下文中的实体模型类 存在着 级联引用和多重删除路径,那么EF就抛出 级联引用和多重删除路径的异常. Introduc ...

  4. Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建

    Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...

  5. 3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项

    3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项 The diagram below shows the essential ...

  6. 5、项目间的沟通协调 - PMO项目管理办公室

    沟通是人类所具备的优良而有一定技巧的一种方式.但是,沟通也是PMO项目管理办公室中所有项目组必须建立起来的能力,也是PMO项目管理办公室日常所需要进行的一项工作内容. 一.项目间的沟通: PMO项目管 ...

  7. Mac下github项目检出与提交

    项目检出 如果你的git还没有代码仓库,可以用过git的代码仓库页面新建一个你的仓库 创建git上的仓库后,我们还需要建立本地的仓库,所以打开Mac终端,建立本地仓库文件夹(这里我用HelloC),然 ...

  8. VS2010中更改项目名称(转载)

    一.修改解决方案的名称:直接选择解决方案,右键重命名即可.

  9. C#项目间循环引用的解决办法,有图有真相

    C#项目间循环引用的解决办法,有图有真相 程序间的互相调用接口,c#禁止互相引用,海宏软件,20160315 /// c#禁止互相引用,如果项目[订单]中有一个orderEdit单元,要在项目[进销存 ...

随机推荐

  1. Android Activity Deeplink启动来源获取源码分析

    一.前言 目前有很多的业务模块提供了Deeplink服务,Deeplink简单来说就是对外部应用提供入口. 针对不同的跳入类型,app可能会选择提供不一致的服务,这个时候就需要对外部跳入的应用进行区分 ...

  2. Java设计模式之(五)——代理模式

    1.什么是代理模式 Provide a surrogate or placeholder for another object to control access to it. Proxy Patte ...

  3. [loj3284]Exercise

    对于一个排列$p_{i}$,假设循环长度依次为$x_{1},x_{2},...,x_{m}$,那么所需步数即${\rm lcm}_{i=1}^{m}x_{i}$ 由于是乘积,因此可以枚举素数$p$,并 ...

  4. 一些需要记住的linux命令

    1. 系统帮助命令                      ----man 2. 数据同步写入磁盘               ----sync 3. 查找文件命令                  ...

  5. SpringMVC---Json的使用

    1.所需文件 2.pom中加入json <?xml version="1.0" encoding="UTF-8"?> <web-app xml ...

  6. [POI2002][HAOI2007]反素数

    题意 反素数 想法 证明这样一个结论 对于一个可行的反素数\(p\) \(p = \sum_{i}^{k} p_{k} ^ {c_k}\) 当 \(p_i > p_j 有 c_i < c_ ...

  7. [R]在dplyr基础上编写函数-(2)substitute和quote

    关于这两个函数,官方是这么定义的: substitute returns the parse tree for the (unevaluated) expression expr, substitut ...

  8. MAC——解决问题:打不开,因为它来自身份不明的开发者

    今天在mac电脑上,下载了一个软件,是从某个网页上下载的,点击却不能打开,弹出窗口提示说"打不开xx,因为它来自身份不明的开发者",怎么解决?下面来看下. 方法/步骤     点击 ...

  9. LVS-原理

    一. 集群的概念 服务器集群简称集群是一种服务器系统,它通过一组松散集成的服务器软件和/或硬件连接起来高度紧密地协作完成计算工作.在某种意义上,他们可以被看作是一台服务器.集群系统中的单个服务器通常称 ...

  10. 取gridview中textbox的值【C#】

    <asp:GridView ID="gridView" runat="server" OnRowCommand="gridView_RowCom ...