Visualizations of version control history

Do you keep your tiddlers under source control? Alternately, do you have code with a source control history you would like to visualize? You might find Gource to be as interesting as I have.

If it is a tiddlywiki you are trying to visualize it helps if you are using node.js or another version that breaks out separate tiddler files. I found reviewing my tiddlywiki git history a trip down memory lane even in single file tiddlywiki.html days, however.

As examples, immediately below is a screen shot of my TW git history where I interpret the lobes as representing the evolution of home, work project notebooks, and shared tiddler collections. Purple are tid files, the pinkish spike some legacy single file tiddlywkis.

The screenshot below is what the end of TiddlyWiki5’s own git history looks like. These screen shots don’t do the visualizations the justice that a movie of gource running and the ability to poke at the visualization with a mouse would, however.

Be prepared to tweak the options to adjust the speed if visualizing a multi-year history like that of TiddliWiki’s git repo. Individual contributors will want to check out the various –*user* options. To visualize TiddlyWiki source code evolving in about a minute I found the following command line did the trick:

gource -s .01 --date-format "%D" -a .1 --max-files 0 --filename-time 2

At that speed the text display of files and contributors will not be of much use, however.

(Similar tools have been mentioned here before, as I recall, although searches on variations of ‘visualize’, ‘git history’, etc did not turn those up for me. I found the information presented reminiscent of some of the takeaways from Your Code as a Crime Scene) Enjoy!

2 Likes
2 Likes

This tool has a certain ornamental value, but it seems that’s all it is.

1 Like

@pmario: This is a lot of fun, and the Beethoven is inspired.

But as @oeyoews says, I don’t see much practical value. Still, @jwd, thanks for sharing!

Ornamental - mostly. Still, while using gource in a more intentional way on several repos it helped me to realize that

  1. there are some crufty portions of my tiddlywiki collection that perhaps I could revisit to clean out some dead wood.

  2. just because portions of a repo have come and then gone, their history - and contents - live on.

Tools like git-filter-repo and trufflehog can help to weed out the bits that obviously should not be shared. But I found gource's pause and explore capabilities helpful to remind me of the fact that some less obvious sensitivities may still lurk in old commits. My repos, I realized, still have some lurking crime scenes that I now have a clue about.

1 Like

Yea, at the beginning of the repos lifetime there there has been some refactoring which looks very nice in the video. A lot of changes are going on. … But only a view contributors.

In the second half of the video the directory structure pretty much stabilized, but a lot of contributors are “dancing” around the screen. … That’s one reason, why the video got longer as I wanted it to be. …

If it is much faster, it’s hard to read the names and I wanted it to be possible that contributors actually could see there names from time to time.

-mario

2 Likes

To me the most interesting use of gource wasn’t with source code repositories. I used to feed it custom data like IP addresses extracted from live sniffed network packets. When there’s lots of network traffic, the brain can’t process a wall of textual data that’s being scrolled very fast on screen. gource gives a better general picture.