Just an update, this has been cleaned up with a python implementation, with a decent bit of added functionality, particularly tag-renaming, and it's been working well. It's already pip installable. Maybe I'll get around to adding it to pypl.. maybe. Cheers, Doug On Thu, Jun 24, 2021 at 8:55 AM Douglas Leonard <dleonard.dev@xxxxxxxxx> wrote: > > For what it's worth, a demonstration script is included which makes > parallel changes on various local and remote repos and does origin and > subtree push/pull.. > In future plans... it's possible to fully reintegrate the subtree > commits into the full branch point file tree locally so that they are > cherry-pickable too, as if all changes were made on complete local > branches. > > Regards, > Doug > > On Wed, Jun 23, 2021 at 10:27 AM Douglas Leonard <dleonard.dev@xxxxxxxxx> wrote: > > > > > > 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 > >