为什么Gitlab无法以状态代码128从本地网络导入存储库?

时间:2019-01-23 15:48:49

标签: git gitlab-omnibus gitlab-ce

我最近在本地网络中的服务器中将GitLab和Docker安装在一起。我正在尝试迁移自己在PC上本地维护的存储库。 我将其通过本地网络中的本地HTTP服务器公开,这是一种解决方法,只是能够将其导入到GitLab ,因为GitLab管理面板中几乎所有可用的选项都类似于“从GitHub导入”,而且这些选项都无法解决我的问题(我的意思是:我不能仅上传存储库的.git文件夹以导入它吗?-从规则上讲)-顺便说一句,我选择的是“按URL存储” :

enter image description here

我必须禁用一个安全设置,因为GitLab不允许从指向您本地网络中服务器的URL导入。因此,我在“出站服务”部分中启用了名为“允许从钩子和服务到本地网络的请求”的选项。

然后,我尝试使用名为“导入项目”的选项卡从GitLab创建一个新项目,并在其中填充表格。然后,它会继续运行很长一段时间,并显示“正在导入...”消息,直到它不断重试,直到显示此消息为止:

  

每次导入尝试均失败:将存储库http://111.222.33.44/path/to/my/repository/root/folder/.git导入myuser / my_project-13:CreateRepositoryFromURL:clone cmd wait:退出状态128。请重试。

我一直在阅读在线发布的Gitlab手册,关于GitLab的其他文章,在Google上搜索到此错误,并发现了数十张具有类似(但非常不同!)问题的票...但是我仍然不明白:为什么可以?我是立即上传我的存储库吗?

给出的URL本身不是问题 :如果将其键入Web浏览器,则可以在Web浏览器中清楚地看到项目的整个文件系统,并且如果添加{ {1}},我什至可以在浏览器中看到隐藏的/.git文件夹的内容...但是,由于某些原因,这对于GitLab来说还不够...

对此我感到非常困惑。我发现的链接之一是Export a repository from a Gitlab server to another Gitlab server(请注意,我是从其他Gitlab导入的,但是是在PC中使用简单的.git创建的简单git存储库。查找与我的远程内容类似的阅读材料案件可不是小菜一碟:我整天都在搜寻这件事,但没有成功...)。在该链接中,有一部分说:

  

您将收到有关克隆空存储库的警告。这是正常的。转到已签出存储库的工作目录,然后执行git pull

......所以我找到了安装GitLab的文件夹,其中创建了“空存储库”,并尝试从此处执行git init命令,并将其路由到我的另一台本地服务器计算机。与此类似:

git pull

...按照我在上面链接中找到的说明,在另一侧成功制作了git pull http://111.222.33.44/path/to/my/repository/root/folder/my_project.bundle 文件之后。但是,由于某种原因,我的GitLab服务器的CLI找不到命令.bundle! (也许是包裹在某种git上的?或者首先它没有包含在virtualenv中?谁知道...)。无论如何,要拉到何处?没有工作目录可供提取!

还有其他我可以做的事情吗?我对Git的了解是有限的:我几乎总是独自使用它来自己管理存储库,而无需PATH到任何地方,也不需要push从任何地方(除了极少数例外)我的一个GitHub项目)。

我可能还要补充一点,the official Gitlab's manual about howto import projects包括从任何地方迁移的指令,除了原始的,未包装的,未使用的,正常的pull命令行软件之外!

3 个答案:

答案 0 :(得分:3)

我遇到了相同的错误Error importing repository http://111.222.33.44/path/to/my/repository/root/folder/.git into myuser/my_project - 13:CreateRepositoryFromURL: clone cmd wait: exit status 128. Please try again.

就我而言,我必须提供用户名和密码,因为从我导入的存储库已使用该用户名和密码(gitblit)进行了保护。我也尝试了很多方法,但最终似乎是一个GitLab故障。对于我来说,使用提供的字段Username (optional)Password (optional) 无效!!我必须直接在Git repository URL字段(as the old screenshot in the docs also suggest内提供凭据):

gitlab import page

导入后,它就像魅力一样-且速度很快。

答案 1 :(得分:0)

最后,真正的问题是对GitLab的Web菜单实际上是如何工作的误解。

在GitLab的Web界面中单击“新建项目”时,有3个选项卡可供选择:

  • 空白项目
  • 从模板创建
  • 导入项目

我不是在想“空白项目”是要走的路...我的意思是...“我正在尝试将我的项目导入到GitLab中”是我的主意,所以我从“导入项目”中尝试“标签(这就是我最终发布此问题的原因)...但是,尝试通过“空白项目”解决了我的问题。

我只是放弃自己的提交历史,并试图从当前项目文件的状态重新创建一个新的存储库。但是,出乎意料的是,在创建了“空白项目”之后,GitLab给了我指导,将我的存储库导入到这个“空白项目”中。我引用:

CMD Instructions - Existing Git repository

cd existing_repo
git remote rename origin old-origin
git remote add origin http://gitlab.somedomain.net/myuser/someblank-domain.git
git push -u origin --all
git push -u origin --tags

因此,“空白项目”成为“导入项目”。问题解决了!

答案 2 :(得分:0)

就我而言,此问题的根本原因是我的密码(由Gerrit创建的临时HTTP密码)中包含特殊字符。我必须不断生成密码,直到获得没有特殊字符的密码为止。