top | item 27689717

(no title)

jwpalmer6 | 4 years ago

OP here.

I wrote up some additional details on how this was created on my blog: https://jpalmer.dev/2021/05/interactive-git-history/.

If anyone has ideas about milestones that I could add to that would make the timeline more interesting/informative, or any other feedback, please let me know.

Happy to answer any questions here.

discuss

order

jamessb|4 years ago

After a user clicks on the streamgraph, the bottom-left displays information about commits by the corresponding contributor in the corresponding quarter; the contributor name is already a link to their GitHub profiles, but the "changes" count could also be made a link to the actual commits.

These links would have the format:

https://github.com/git/git/commits?author=gitster&since=2005...

or

https://github.com/git/git/commits?author=gitster@pobox.com&...

jwpalmer6|4 years ago

Oh that's a good idea. Thanks!

shortstuffsushi|4 years ago

This is really cool. I started a project in a similar vein a few years back that I loosely called "What Did I Do" that would allow you to track blame / "ownership" over time. I could write out content to the command line, but once it got to the point of starting to put visualizations into the browser (in fact, I also went the D3 route), I started to lose drive. Finding a way to make it visually appealing escaped me - but you've captured it well here, I think. With the work you've done, can you also represent other repositories, or is this heavily focused on the Git repo specifically?

jwpalmer6|4 years ago

Thanks!

Yes, it's pretty heavily focused on the git repository, but it could be applied to other repositories with a little difficulty, and with mixed results. The main issues would be:

1. Getting the data. Currently a script needs to be run over the contents of a git repository to gather all of the commit data that's required. GitHub's API for commit data wouldn't allow all of the necessary data to be retrieved in a timely fashion, so that needs to be processed offline.

2. Cleaning the data. In order to link to github accounts I had to manually align commit author data to github profiles, which I wanted to do for this project because seeing a person's profile helped link the effort to the individual. You could throw that away for a different repository, I suppose, and just show the commit author information.

3. Creating milestones. The git milestones are mostly handcrafted (linking to release notes where they exist, etc), so they'd need to be replaced with something that could be generated from the repository or from some other process.

That said, I do think that it would be interesting to see other repositories in this style. I tried a couple of others just to see the basics, but the results were underwhelming because the structure of the visualizations depends so greatly on activities of the contributors.

Would you use it on other repositories if you could? Which repositories would be interesting to you?

uhoh-itsmaciek|4 years ago

Neat! Thanks for sharing.

>Note: This visualization was designed for screens larger than 1024 x 1024 and for desktop-style interactions.

Why am I getting this warning on my 4K UHD display? Both Firefox 89 and Chrome 91 on Ubuntu.

jwpalmer6|4 years ago

Because I am terrible at making CSS do what I want, unfortunately.

Seriously, though, I think I do some type of aspect ratio check - maybe that's the culprit.