我有一个存储库,在 Travis 上进行测试时,始终给出如下错误:
$ if [[ -a .git/shallow ]]; then git fetch --unshallow; fi
fatal: git fetch-pack: expected shallow list
The command "if [[ -a .git/shallow ]]; then git fetch --unshallow; fi" failed and exited with 128 during .
Your build has been stopped.
Run Code Online (Sandbox Code Playgroud)
您可以在此处查看示例,尽管链接可能需要授权。
我觉得奇怪的是,似乎git fetch --unshallow只有在已经确定它很浅的情况下才应该运行。我应该补充一点,我已经在许多其他存储库中使用了这个构造,并且从未遇到过问题。
在我的本地机器上,内容.git是:
myrepo.git$ ls -a
. branches config FETCH_HEAD HEAD index logs ORIG_HEAD
.. COMMIT_EDITMSG description gitk.cache hooks info objects refs
Run Code Online (Sandbox Code Playgroud)
我不太了解 Git 的内部结构,也不太明白git fetch --unshallow实际应该做什么,但有一种可能性:检查gitTravis 测试运行者可以使用哪个版本。
fatal: git fetch-pack: expected shallow list我在 CentOS 7 虚拟机上的 GitLab CI/CD shell 运行程序中看到相同的错误消息。CentOS 7 在官方存储库中仅包含 Git 1.8.something。
这篇博文是我最初意识到此错误消息与旧版本的 Git 相关的地方。该帖子建议升级操作系统默认版本git,但我不想这样做。
按照此处的建议,我最终所做的是设置:
variables:
GIT_STRATEGY: clone
Run Code Online (Sandbox Code Playgroud)
在里面.gitlab-ci.yml。当然,这是 GitLab 特有的事情,但我非常肯定 Travis 为您提供了一些为测试环境设置环境变量的选项。
也可以看看:
| 归档时间: |
|
| 查看次数: |
9741 次 |
| 最近记录: |