1. 11
  1. 3

    Looks super cool! I think it complements gource very well. Git-story focuses on commit history, and gource visualizes the file tree structure and contributors. Thanks for sharing!

    1. 2

      I love gource. That was the first tool (and most memorable) I’ve used for visualizing data in Git repos. I’m surprised there aren’t more by now for various aspects of the data that Git stores.

    2. 3

      This presentation might work for a handful of commits but how does it fare on say the linux kernel or the nixpkgs repo? Is it able to extract some understanding from that torrent of information?

      1. 1

        So for now the tool is really designed for a reasonable number of commits on a few branches (this is mentioned in my article and the docs). There are 2 limiting factors for animations at this point:

        1. Manim is generating video, so each element (commit circle, arrow, etc) adds time to generate the output. I’m sure I could optimize it a lot better than I am now, but large commit sequences would take a long time to generate video for. One option for that is to add a feature to export one image of the final result instead of animating, but even so there is only so much you can squeeze in 1 static image. Maybe some sort of scrollable, zoomable image output option would be cool for large repos…

        2. Repos with large and complex branching structures can have many crissy-crossy relationships between commits, so some TLC would need to go into making that look decent. The current logic I’m using wouldn’t scale well to massive and complex repos.

        1. 2

          If you want to try an unreasonable number of commits on a very reasonable number of branches, check out void-packages

          1. 1

            Haha thanks for that I’ll take a peek O.o

      2. 2

        Any chance this could just output the final graph as an SVG. Could be really cool to take an entire repo and just have a zoom-able final output image with literally every commit in a giant web.

        1. 1

          I mentioned something very similar in one of my responses above:

          Maybe some sort of scrollable, zoomable image output option would be cool for large repos…

          I will try to add a feature / command-line option for something very similar to this. For now, the best option is just to run the video of the desired portion of your commit history and take a static screenshot of the desired frame.

          1. 2

            For sure. Mostly is useful from a time perspective. No need to render a ton of video just to get the last frame.

            Also, the second gain of that if it can be SVG, it won’t be pixelated.

            1. 1

              Yeah definitely agree. That’s just the “workaround” for now haha. Thanks for the suggestion :)

        2. 2

          The slow circle animation would annoy me very fast if this is used for a presentation

          1. 1

            Oh that’s the default animation when creating shapes in Manim and I thought it was pretty sleek, but pretty subjective so I can understand it might annoy some folks.

            You could always take a screenshot of the video’s final state which is a zoomed-to-fit frame of the pictured commit sequence.

            Or I could add a new feature to adjust tweak that… if only I had the details in a GitHub issue… https://github.com/initialcommit-com/git-story

            1. 3

              I could add a new feature

              Wait, stop. I’m the passerby that won’t use it ;)

              I’m curious where you’d want to use this project ? With gource I’d say you can have a fun time visualizing what got edited the most (I did actually use that in a presentation once). Like an “interactive flame graph” ? But where do you intend to use this for, when do you want to show specific commits animated like this ? I’m not against “for fun”, it just appears you (and the people upvoting) have a specific use case for this, which I can’t see.

              1. 2

                Haha no worries, but if you mentioned it there’s a good possibility other folks out there might feel the same… So whether or not you use it you may get a “–proctrap” command-line option ;)

                Yeah, partly it’s for fun after I found out about Manim and thought it would be a fun way to try it out. But I also thought it’s surprising there isn’t a presentation-caliber way to easily generate commit history. “git log –graph” is fine for devs in action but falls pretty short of being good-looking.

                One use case would be a team keeping a series of animations that represent their workflow, so that new folks on the team (esp those that might be new to Git) can quickly get up to speed.

                Another would be folks who often write Git or other programming tutorials (my website being one example) but are not artistically inclined at all. I cringe at the thought of opening image editing software, which often prevents me from adding visual aids to my stuff. So the ability to generate one-off animations that I can either use as video (or take a screenshot of the final frame for a static version) is very convenient.

                1. 2

                  Thanks, I can feel the need to create something better than image editing software for visualizing git workflows. Could be interesting for teaching students. Git is still something they only get to know at the last moment, and then it’s everything and the kitchen sink (gitlab, merge requests, approval, CI, CD, rebase-only, milestones..)

                  you may get a “–proctrap command-line option

                  I’d be honored, and it would keep the git CLI tradition of using very obscure flags and names ;) (Though then you’d probably have to make the flag change animations to be even slower.)

          2. 2

            This is amazing! I’ve always been on the lookout for a similar tool and I’m glad I found it today. Thanks for you work!

            1. 1

              Woohoo! :D

              1. 1

                Out of curiosity what do you plan to use it for?

                1. 2

                  I like to visualize my commit history. So I’d use it as prettier alternative to git log. I might also try to use the generated video clip in my programming videos to give a high level overview of my progress.

                  1. 2

                    Sweet! Would love to get your feedback after you test it out, and am happy to help if you run into any issues.