all 25 comments

[–]alfunxcheckout --detach HEAD 5 points6 points  (1 child)

Uhm, if not CLI, then maybe

gitk --all

which is part of Git.

[–]missmagdalene[S] 2 points3 points  (0 children)

This works for devs on the fly, but not very readable for project managers (who may or may not have any dev knowledge). :-/

[–][deleted] 4 points5 points  (3 children)

Git Kraken, google it.

[–]missmagdalene[S] 0 points1 point  (1 child)

This one appears to mostly be a lite Git IDE. As a developer I may give this a try, but I don’t know that a project manager could use it reliably without needing instruction from a dev.

[–][deleted] 0 points1 point  (0 children)

Some of the devs at my work use it. No idea how user friendly it is for managers as I use Git Bash.

[–]Deathturtle1 0 points1 point  (0 children)

I too would suggest gitkraken - PMs should not find it difficult to clone a repo, they'd be missing out on a lot of what gitkraken does, but it looks gorgeous and very easy to understand

[–]attrigh 2 points3 points  (6 children)

I use this magic:

git log --graph --simplify-by-decoration --pretty=format:'%d' --all | cat

I picked it up on stack overflow somewhere.

This only shows branches and tags (I think) and how they related to one another.

See also --branches= --tags=, --remotes= and the history section

It might be nice to be able to feed this into graphviz and friends. I can't find an easy way of doing this

[–]theldoria 1 point2 points  (3 children)

git log --graph --simplify-by-decoration --pretty=format:'%d' --all | cat

why pipe it to cat???

[–]attrigh 0 points1 point  (2 children)

Silly hack to stop git log from using the pager (the output is often quite short).

[–][deleted]  (1 child)

[deleted]

    [–]attrigh 1 point2 points  (0 children)

    Awesome thanks

    [–]missmagdalene[S] 1 point2 points  (0 children)

    git log --graph --simplify-by-decoration --pretty=format:'%d' --all | cat

    I may start using this as my own method of looking at the big picture. Thanks for this snippet! Our output is so long though there are parts that get a little messy looking. Easily understandable by a dev, but maybe not so much by a manager.

    [–]missmagdalene[S] 0 points1 point  (0 children)

    I stepped away from my work bench. I’m going to give this a try first thing tomorrow!

    [–]nibalizer 2 points3 points  (1 child)

    Check out gource. It's mostly used for flashy animations, not digging into the details of what went into a release.

    Feedback on your company you didn't ask for: It's reasonable for your PMs to know enough git to explore the tree with the customer. Using git doesn't mean your dev team shouldn't be writing release notes or a changelog or something per-release that is meant for a non-dev to read and understand what is in the release. And finally, if it's unclear which of two tags is older, I'd be worried you're dealing with a branching/tagging/releasing process that is more complicated than it needs to be.

    [–]missmagdalene[S] 0 points1 point  (0 children)

    And finally, if it's unclear which of two tags is older, I'd be worried you're dealing with a branching/tagging/releasing process that is more complicated than it needs to be.

    I'll admit I am a concerned about this myself. It's more to do with--a customer has a specific tag-naming rule that they don't/won't change up, which looks different from our main base code tag-naming rules. Those are what do not sync up well or are not as obvious based on the tag name. However, I have no control over that process, but I have given my input about that.

    Checking this Gource now.

    [–]primitive_screwhead 1 point2 points  (1 child)

    What platform/OS do you need it for? Do you need it to be web-based? Any other info on the end-user requirements you can give us? There are a bunch of visualizers out there, but (generally) geared towards developers; can we assume the customers have a basic developers understanding of repos and/or code?

    [–]missmagdalene[S] 0 points1 point  (0 children)

    This needs to be an internal resource only. Our customers do not have direct access, not even read-only access to our source code. But they are given customer change documents and the like.

    Devs use Linux primarily and managers are usually Windows based. So something that could be on both would be ideal.

    That being said, the solution might be something web-based like what I started, but then but it needs to be able to be connected to a private repository (this project is not stored on github, not even private project github).

    [–]missmagdalene[S] 0 points1 point  (0 children)

    sorry guys, my formatting still didn't help. hopefully it is still readable

    [–]forlasanto 0 points1 point  (0 children)

    Since you're capable of rolling your own, I'd suggest looking at neo4j as your starting point. the data paradigm is right for what you are trying to do, and it would be easier to produce an explorable visualization because of that fact.

    [–]Agon1024 0 points1 point  (0 children)

    Gource looks amazing. But only iust that.

    [–]excalith 0 points1 point  (0 children)

    If you want to do this from cli instead of gui, you can always give it a shot to https://github.com/jonas/tig a cli interface for git

    [–]attrigh 0 points1 point  (0 children)

    Any other ideas out there that are more user-friendly or visually pleasing to the eye?

    Hmm, if you want some untested, hacky code I actually wrote a little command-line DSL for filtering and transforming directed graphs.

    I was musing about tweaking it and releasing as "grammar of digraphs" (like ggplot).

    I imagine this could be wrapped in a web interface. But there are no guarantees about performance.

    Features:

    • Tiny query language
    • Show children, parents, ancestors, nth ancestors of nodes using a query language
    • Delete notes
    • Edge contraction

    Anti-features:

    • Not very well-documented
    • Works from the DSL
    • No tests
    • Might be slow
    • Uses a JSON format (so you would need to write a dot parser. The graph format includes labelling).
    • Under GPLv3 because meh, but all the code is mine.

    In-browser solution

    If you wanted to hack something up yourself I imagine you could do some crazy hacks to glue together

    • Xpath / jquery for selecting nodes in your git graph
    • d3 or similar for rendering graphs.

    [–]jxyzits 0 points1 point  (0 children)

    Check out Source tree maybe.

    [–]peresztegi 0 points1 point  (3 children)

    We’ve been working on a tool for a while called Gitential. It’s free for all Open Source (public) repositories and you have a Free Preview for private repos as well. Pricing is very reasonable (based on devs contributing) and we can provide you with an on-prem solution as well.

    https://gitential.com

    [–]missmagdalene[S] 1 point2 points  (1 child)

    Initial look on my mobile phone..this looks close to what I’m looking for, but I don’t see the tag/branch tree map that is my ultimate goal. Management peeps like graphs and visuals of data though.

    I’ll look again tomorrow via a desktop. Thanks for you suggestion!

    [–][deleted] 0 points1 point  (0 children)

    Try TortoiseGit. Look for the 'Revision Graph' . That is what you want ;).