Best way to perform version control on an embedded linux project?
I'm starting work on a new embedded Linux project. The project will consist of an embedded board running Linux, some drivers (possibly some custom drivers), and an application on top. I am working with another person and we need a way to put the project under version control.
I have used git for many projects before and I find it great, but I'm wondering what the best way would be to put this project into git; do I create separate repositories for the OS, drivers, and application? Do I put everything into one giant r开发者_运维问答epository? Do I not put the OS under version control, but just the application?
Another question: do I put just the Linux source that we've used under version control, or the end product? What about the whole filesystem that will be running on the board?
I would appreciate any thoughts on this.
Thanks!
Marlon
Regarding Git:
- putting everything under one giant repo is generally a bad idea (especially when you need to clone said "giant" repo around)
- you should put under version control what needs to have a source code history: if you don't intend to actually modify the Linux kernel source (but just reference the exact version of said kernel you are using for a particular version of your project), then the OS needs to be stored elsewhere (an artifact repository like Nexus for instance).
- Same goes for the drivers: if you change their source codes, put them in their own Git repo and reference them as submmodules (you would be using a "source dependency").
If you don't change their sources but use directly a binary, store it in an artifact repository (you would use them as a "binary dependency", which usually isn't stored in a VCS).
精彩评论