Gitlab更改项目间的fork提交关系
一.前情提要
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提交关系的更多相关文章
- 移动网络游戏实现流程——并借此阐明pomelo在GitHub上各个项目间的关系
<!DOCTYPE html> 摘要:本文通过一个简易流程图介绍如何基于Cocos2d-x引擎和pomelo服务器框架开发一个移动网络游戏.并借此阐明pomelo提供的各个项目间的关系. ...
- 《Entity Framework 6 Recipes》中文翻译系列 (10) -----第二章 实体数据建模基础之两实体间Is-a和Has-a关系建模、嵌入值映射
翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 2-11 两实体间Is-a和Has-a关系建模 问题 你有两张有Is-a和Has-a ...
- Entity Framework 实体间的外键关系
EF 默认是开户级联删除的,这此规则将会删除非空外键和多对多的关系,如果 在数据库上下文中的实体模型类 存在着 级联引用和多重删除路径,那么EF就抛出 级联引用和多重删除路径的异常. Introduc ...
- Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建
Gitlab+Jenkins用钩子实现git提交后jenkins自动化构建 一.Jenkins 进入项目---->Configure 1.设置项目代码从git中拉取 2.设置钩子程序 二.git ...
- 3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项
3.2 Dependencies of the Projects in the Solution 解决方案中项目间的依赖项 The diagram below shows the essential ...
- 5、项目间的沟通协调 - PMO项目管理办公室
沟通是人类所具备的优良而有一定技巧的一种方式.但是,沟通也是PMO项目管理办公室中所有项目组必须建立起来的能力,也是PMO项目管理办公室日常所需要进行的一项工作内容. 一.项目间的沟通: PMO项目管 ...
- Mac下github项目检出与提交
项目检出 如果你的git还没有代码仓库,可以用过git的代码仓库页面新建一个你的仓库 创建git上的仓库后,我们还需要建立本地的仓库,所以打开Mac终端,建立本地仓库文件夹(这里我用HelloC),然 ...
- VS2010中更改项目名称(转载)
一.修改解决方案的名称:直接选择解决方案,右键重命名即可.
- C#项目间循环引用的解决办法,有图有真相
C#项目间循环引用的解决办法,有图有真相 程序间的互相调用接口,c#禁止互相引用,海宏软件,20160315 /// c#禁止互相引用,如果项目[订单]中有一个orderEdit单元,要在项目[进销存 ...
随机推荐
- Python 循环控制
for循环 Python for循环可以遍历任何序列的项目,如一个列表或者一个字符串 for 变量 in 列表.字典.字符串.函数: 执行语句 ...
- <C#任务导引教程>练习三
/*Convert.ToInt("213165");int a=12345;string sn=a.ToString();//把a转换成字符串snint b=int.Parse(s ...
- [bzoj3123]森林
首先对于询问操作可以使用可持久化线段树来维护,对于连边操作对于两颗树中选取较小的树暴力练到另一个点上,点数可以用并查集然后只修改根的点数即可. 1 #include<bits/stdc++.h& ...
- nginx安装与配置4-负载均衡
负载均衡: 1.准备俩tomcat,测试环境端口不一样,然后服务名一样然后内容不一样 2.配置nginx的config 在http模块中设置: //举例,以下IP,端口无效 upstream test ...
- shiro 学习笔记
1. 权限管理 1.1 什么是权限管理? 权限管理实现对用户访问系统的控制,按照安全规则或者安全策略,可以控制用户只能访问自己被授权的资源 权限管理包括用户身份认证和授权两部分,简称认证授权 1.2 ...
- 洛谷 P4887 -【模板】莫队二次离线(第十四分块(前体))(莫队二次离线)
题面传送门 莫队二次离线 mol ban tea,大概是这道题让我第一次听说有这东西? 首先看到这类数数对的问题可以考虑莫队,记 \(S\) 为二进制下有 \(k\) 个 \(1\) 的数集,我们实时 ...
- 【数据处理】python将GO注释结果整理为WEGO文件
通常,比对NR库后为m8格式,通过NR和GO数据库对应关系文件,写代码整理为Gene-->GO文件,如下: 这里是一对一的关系,要转换为WEGO格式文件,即一对多关系,如下: 用python脚本 ...
- memset初始化值的效率秒杀for循环
<span style="font-family: Arial, Helvetica, sans-serif; background-color: rgb(255, 255, 255) ...
- EXCEL-表格安全性:加密给与不同操作权限、表格怎么不让别人复制粘贴?
1.下方表格名称右键-保护工作表,将所有选项取消勾选 然后设置一个密码就可以了 2.文件旁的三条线点开-选项-安全性,设置编辑权限密码,确定
- C/C++ Qt 数据库QSql增删改查组件应用
Qt SQL模块是Qt中用来操作数据库的类,该类封装了各种SQL数据库接口,可以很方便的链接并使用,数据的获取也使用了典型的Model/View结构,通过MV结构映射我们可以实现数据与通用组件的灵活绑 ...