What tools are there to visualise the merge structure of dozens of git branches?

425 views Asked by At

I started at a new company a few months ago and I was new to git. I have used svn and bk before so most of the concepts were not alien to me. The problem I have is understanding the 80+ branches that currently exist. A handful of them have names like release-#.# or maintenance-#.#.# so I can guess what they relate to. Many of the others seem to be feature or product branches. The logs suggest only a handful are active in the last 6 months. My background reading thus far suggests this is not how git or any other VCS repos should end up.

What tools are available that can help me visualise this spaghetti of over 80 possibly merged or deadended branches?

I have found gitg --merges --all 1 gives an OK representation although it is quite cluttered.
<code>gitg --merges --all</code> seems a little cluttered

gitk --merges --all 2 is not in my prefered aesthetic style but I can see that it does a good job of decomposing the problem into isolated chunks.
<code>gitk --merges --all</code> does OK but makes it hard to see the whole picture

Perhaps something that would let me have an A1 plot of everything in one go would be helpful?

Ultimately I, and I believe a few of the existing programmers, would like to tidy things up a bit. Everyone knows that some of these branches were meant to be temporary and are probably finished with but did they get merged back into the main development lines? It all has a rather organic growth feeling about it and I want to know I am not about to cut off a root thinking it is dead wood. It looks like git has commands to delete and rename branches so we should be able to get things in a more logical state. Possibly including sub/branch/style/things if that makes sense here (and is not generally considered bad form in git).

I can run the tools under Ubuntu or Windows 7. Code cannot be accessed outside our LAN. Setting up an automated job to update the image would be a bonus but not a hard requirement. I am happy to consider paying money for something that helps me do my job but I do not have huge funds available for this task as it is not seen as important right now.

1

There are 1 answers

1
Michał Fita On BEST ANSWER

Is it possible that TortoiseGIT tool would help? That's first suggestion that came into my mind

TortoiseGIT Revision Graph


Next proposal: BranchMaster

Originally comes from Answer to "Visualizing branch topology in git", and I suggest to take a peek there.

BranchMaster branch visualization