Git 克隆 lfs 从 fork 合并后克隆时出现涂抹错误/404 错误

问题描述 投票:0回答:2

我有一个项目,我们称之为 masterProjects/lfsTestRepo。我克隆 masterProjects/lfsTestRepo,运行

git lfs install
git lfs track *.rpm
然后我添加 .gitattributes 文件,提交并推送我的更改。

然后我将 repo 分叉到 myProjects/lfsTestRepo 中。然后我克隆 myProjects/lfsTestRepo,添加一堆文件,包括一些 rpm,添加、提交并推送我的更改。

然后我进入 gitlab,创建一个从 myProjects/lfsTestRepo 到 masterProjects/lfsTestRepo 的合并请求。在 gitlab 中一切看起来都很好,所以我们接受合并请求。

现在,当我尝试拉取或重新克隆 masterProjects/lfsTestRepo 时,我在尝试下载的第一个 rpm 文件上遇到了一个 Smudge 错误。如果我使用

git lfs install --skip-smudge
运行它,那么我会得到一个 [404] 服务器上不存在的对象,或者您没有访问它的权限。但是,如果我进入 gitlab 并导航到 masterProjects/lfsTestRepo 中的 rpm 文件,我可以通过 Web 界面下载 rpm 文件。

如果我再次 fork myProjects/lfsTestRepo,那一个就可以被克隆了。

还有什么我必须在本地配置的吗?我必须在 gitlab 中配置什么吗?从 repos 向上推送 lfs 文件时,gitlab 是否只是不工作?

git gitlab git-lfs
2个回答
1
投票

听起来正在发生的事情是

masterProject
没有它应该拥有的LFS对象,特别是因为仅
masterProject
repo的新克隆无法下载所有这些对象。

这听起来像是 Gitlab 中的一个错误。 Gitlab 应该处理通过合并添加的 LFS 对象。

你能试试这个吗:

  1. 克隆
    myProjects/lfsTestRepo
    到新目录。
  2. 确保 LFS 已正确下载文件:
git lfs fsck
  1. 添加
    masterProject/lfsTestRepo
    作为新遥控器:
git remote add mproj [email protected]:masterProject/lfsTestRepo
  1. 将您的分支从
    myProjects/lfsTestRepo
    推送到
    masterProject/lfsTestRepo
    回购:
git push mproj master:temp/lfs-fix-push

(将

master
替换为您更改后的分支。)

push
should 将任何丢失的 LFS 对象上传到
masterProject/lfsTestRepo
仓库中。

您可以通过将该项目克隆到新目录来测试

masterProject/lfsTestRepo
中是否存在所需的 LFS 对象。


0
投票

从来没有真正弄清楚这个问题,但为了解决它,我们设置了一个新服务器,安装了 Gitlab,导入了我们的备份,一切正常。

我唯一的猜测是,这与原始服务器运行时间太长有关,我认为 gitlab 在我们刚开始使用它时甚至不支持 LFS。因此,一定有一些东西从未真正正确升级过,但没有抛出任何错误,并且在我们最终开始尝试使用 LFS 之前都不是问题。

© www.soinside.com 2019 - 2024. All rights reserved.