如何获得SRC_URI的浅拷贝?



我有一个单独提交的.zip格式的不同sdk版本的git repo。这实际上意味着在git历史记录中有一个完整的文件,当你克隆这个repo时,你会得到所有的东西,因为二进制文件之间的diff是整个文件。

问题是,在几次提交之后,repo的大小将非常大(大约1次提交)。500 mb) .

我正在使用Yocto项目和SRC_URI克隆整个历史的repo,这就是事情开始下降的地方,因为它下载了很多不必要的数据,这是时间和存储消耗。

有没有办法只获得一个(最后一个)提交下载的fetch任务与SRC_URI没有历史记录(浅克隆)?或者改变do_fetch任务?

这是我想在Yocto中实现的:

git clone --depth repo_url

我不相信这完全是支持,至少根据Bitbake手册:

对浅层克隆的支持目前还没有实现,因为git不直接支持浅层克隆一个特定的git提交哈希(它只支持从标签或分支引用克隆)。

支持的似乎是克隆一次repo,并为它生成一个浅tarball (bitbake一直生成tarball以避免重新克隆repo),这应该会加快你的速度,你只是无法避免最初的完整克隆。

你想尝试的是使用BB_GIT_SHALLOW, BB_GENERATE_SHALLOW_TARBALLS和BB_GIT_SHALLOW_DEPTH。

BB_GIT_SHALLOW也被设置为"1"时,将BB_GENERATE_SHALLOW_TARBALLS设置为"1"会导致bitbake在获取git库时生成浅镜像tarball。包含在浅镜像tarball中的提交数量由BB_GIT_SHALLOW_DEPTH控制。

应该像下面的代码片段那样做:

BB_GIT_SHALLOW ?= "1"
# Keep only the top commit
BB_GIT_SHALLOW_DEPTH ?= "1"
BB_GENERATE_SHALLOW_TARBALLS ?= "1"

相关内容

  • 没有找到相关文章

最新更新