Conversation

Replying to and
I think subtrees make more sense for tightly bound components and repo is a nicer approach than submodules for other things. Submodules are bad enough that both AOSP and Chromium invented their own versions of it to work around how broken/weird/painful they are to deal with.
2
1
Replying to and
I don't mind repo because it's simply a text file describing repositories via branch, tag, revision, etc. and it's nice to deal with for overriding repositories and so on. It essentially works like submodules if you reference things via revision which you do for a release.
2
Replying to and
I wouldn't call it a build tool. It's a fairly straightforward script for managing a bunch of Git repositories. It's comparable to making a top-level repository with everything else as submodules, but without the pain of submodules, and very unopinionated about how you use it.
1
1
The manifest is in a repository by itself with nothing else. If you want, you can refer to everything via specific revisions. Generally, you refer to stuff via tags or even branches for development and for a build you generate a frozen revision manifest with repo manifest -r.
1
1
This Tweet is from a suspended account. Learn more
I'm very thankful that I primarily have to deal with repo and not submodules. I like that it's very flexible in how you use it. A developer can add a local manifest overriding / extending the main one. Can also tag metadata to allow for different kinds of partial checkouts, etc.
1
In theory, you get something from Git understanding submodules, but in practice, I find that it's just a massive pain to deal with and I'd rather Git didn't have a clue what was going on, like repo. Can use repo with entirely frozen revisions like submodules, just not mandatory.
2
1
It's a lot easier referencing things by tag. It's convenient referencing them by branch to grab the most up-to-date version. Just need to keep in mind when referencing things by dynamic heads like branches to use repo manifest -r to snapshot exactly what you cloned from it.
2