Working with multiple git roots

Our project has about 4 separate git roots.
(At least that's what most developers work with. There are additional related projects like different clients, so that some developers work with 6 or more git roots.)

Currently IDEA support for this is too limited imho:
The point of view is still on individual git roots.
Only if all git roots are currently on the same branch (as determined by branch name), then you get the chance of operating on all git roots at the same time.

For me this does not really work. Often times I have a branch on only two or three git roots.

What would help me is a perspective on git that is centered on branches, i.e. see all branches, the select one branch and see all affected git roots.
Creating a new branch would allow me to select which git roots should get the branch.

How do others work with multiple git roots?
Would that help you, too?

1 comment
Comment actions Permalink

When we were implementing this feature, we were thinking that there are two major cases of working with multiple Git roots:
1. all roots are independent (e.g. there is one "main" root and several roots for libraries or subprojects).
2. all roots are synchronous: the project is divided to several Git repositories for some reason (e.g. to have different permissions), but they are all a part of a single project, and there is usually no sense to have one of the roots on one branch, and others - on the other branch (the project will simply not compile in this case) <- this is, for example, the setup we have in IntelliJ project at JetBrains.

Could you please describe your scenario in a bit more detail? Do you develop several roots "synchronously", and several others - independently? I mean: would you want to synchronize not all, but some of the roots? Do you want to synchronize them "forever" (i.e. "these roots are developed synchronously") or from time to time (e.g. "now I want to checkout root1 and root2 synchronously, but next time I may want to checkout root1 and root3 together)?

Btw, we're planning to to introduce a couple of improvements for the synchronous branch workflow: e.g. (allow to checkout a branch in all repositories even if a branch with the same already exists in one of the repositories, etc.).


Please sign in to leave a comment.