我正试图为基于yocto的项目制定一个工作流程。目前,我已经为我提取的每个元层创建了一个带有子模块的git。https://github.com/shrkamat/rpi/tree/thud
这意味着当我转到一个新的yocto版本(比如战士(时,我需要创建新的git分支&将我的所有子模块移动到新租赁分支。有更好的方法吗?这里有什么最佳实践吗?
现在,有三种主要的解决方案(和最佳实践(来解决这个问题,还有许多自主开发的脚本。如果你刚开始,我强烈建议你坚持以下其中一项:
1( kas:一个专门用于设置基于OpenEmbedded(因此也是基于poky(构建的工具,包括检查特定的层修订,将它们添加到bblayers.conf
,设置local.conf
,以及为特定目标启动bitbake
。
Pro:
- 高度专业化,不需要解决麻烦,因为它最初是为其他事情准备的
- 支持将构建配置与层(通常是产品应用程序(绑定。这可以显著减少提交混乱
- 唯一具有适当local.conf支持的解决方案
对照:
如果是从pip
或docker
中提取的,则- 至少需要一个功能性python设置以及一个包装脚本
- 除了设置和构建之外没有任何功能
2(repo:一款真正的经典产品,来自android世界。
Pro:
- 非常强大,有很多内置的支持来管理拉取的东西——在本例中是层
- 众所周知,久经考验
对照:
- 在图层设置之外完成任务需要一定的技巧
- 需要至少下载一次
3(git子模块:轻量级方法。
Pro:
- 通常不需要额外的设置,我们都有现成的
git
,对吧
对照:
在我看来,- 是最不有力的方法
- 需要技巧或自定义脚本才能完成纯层设置之外的任何操作。甚至比回购更多
那么该选哪个呢?我个人最喜欢的是1卡,因为它几乎完全符合我的要求。正如他们所说,你的里程数可能会有所不同。但这些通用方法中的每一种肯定都是比自制脚本更好的开始。