我正在尝试从 Yocto 配方中的多个 git 存储库中检索源。我用了
SRC_URI = "git://<git_repo_uri>;protocol=ssh;rev=<revision> \
git://<git_repo_uri>;protocol=ssh;rev=<revision> \
file://<some file to grab>"
但它报告错误,找不到 {WORKDIR}/git 文件夹。
ROR: Function failed: Fetcher failure: Fetch command failed with exit code 128, output:
| shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
| shell-init: error retrieving current directory: getcwd: cannot access parent directories: No such file or directory
| fatal: Could not get current working directory: No such file or directory
看起来 fetcher 下载第一个 git 存储库后,它会删除 {WORKDIR}/git 中的内容以准备下载第二个 git 存储库。从而产生“未找到目录”错误。
我测试过,如果只有 1 个 git repo + 文件协议获取器可以正确执行。
知道如何从多个 git 存储库获取源代码吗?
谢谢!
答案1
我遇到了完全相同的问题,发现 subdir 和 name 不起作用,但destsuffix=<somename>
有效。据我所知,这没有记录,但可以从 bitbake 获取代码中理解。像airfishey这样的例子:
SRC_URI = "git://<git_repo_uri>;protocol=ssh;rev=<revision>;destsuffix=first_repo \
git://<git_repo_uri>;protocol=ssh;rev=<revision>;destsuffix=second_repo \
file://<some file to grab>"
答案2
您是否尝试过添加subdir=
到您的 git 行中?
像这样的东西吗?
SRC_URI = "git://<git_repo_uri>;protocol=ssh;rev=<revision>;subdir=first_repo \
git://<git_repo_uri>;protocol=ssh;rev=<revision>;subdir=second_repo \
file://<some file to grab>"
似乎在某个时候针对此功能提交了一个错误(https://bugzilla.yoctoproject.org/show_bug.cgi?id=6562),因此您的里程可能会根据您使用的 Yocto 版本而有所不同。