我从我的第一个真正的项目开始,开发一个由多个组件组成的嵌入式系统。也就是说,这些是用于引导加载程序的uboot,用于内核和userland的buildroot,以及应该安装到系统上的自定义应用程序。
关键问题是我应该如何处理不同组件的版本控制。
我心目中想要的文件夹结构看起来有点像这样:
- mainproject
- bootloader
- configs
- someFiles.cfg
- uboot [Git Repo]
- .config
- otherUbootFiles
- crosstool-ng [Git Repo]
- os
- buildroot [Git Repo]
- buildrootOutOfTreeFiles
- targetfs
- someFiles.txt
- application
- application1 [Git Repo]
- application2 [Git Repo]
- userdata
- someFiles.txt
主项目应包含完整生成嵌入式系统所需的所有文件。
我想的是,如果我想更新uboot或buildroot的版本,可以简单地将集成存储库移植到新版本。
Uboot和buildroot都将配置存储在各自的文件夹中。当我使用git将这些存储库作为子模块包含时,我只能跟踪相应存储库中这些文件夹内的更改。我想把这些配置文件包括在我的主存储库中,但又不会失去从git中获取uboot和buildroot新版本的能力。
对于给定的用例,您将如何进行版本管理?
我对各种建议持开放态度,唯一的限制是git应该用于源代码和版本控制。