Hi all, For a very quick introduction, I'm a career physicist. I just thought I'd share a detailed method and implementation I developed to improve on shortcomings of subtrees. This says it all https://gitlab.com/douglas.s.leonard/alltrees/-/wikis/home But to repeat a little... First, it allows a container "sub" tree, ie syncing only the non "sub" parts of the tree to a repo. But maybe more importantly, when it pulls from the trees it's able to "remap" or reconstruct old commits back to their originals to avoid the duplicate commit issue of subtrees. This is round-trip reproducible so consistency is kept both ways. It avoids the need for squash with subtrees. Compare the two images in the wiki to see the difference between subtree without squash and alltrees. Non-FF changes made in a tree repo show as branched and merged. Traditional advantages of subtrees are kept, primarily that users/developers of any one repo don't need any awareness of how to use the subtrees or the other repos. I have used this some, but not extensively yet. In my use it has worked. I think it's pretty quick, but I haven't tested on large projects. Cheers, Doug Leonard