[HN Gopher] Show HN: An interactive visual history of Git develo...
___________________________________________________________________
Show HN: An interactive visual history of Git development
Author : jwpalmer6
Score : 93 points
Date : 2021-06-30 15:24 UTC (7 hours ago)
(HTM) web link (git-history.jpalmer.dev)
(TXT) w3m dump (git-history.jpalmer.dev)
| concernedctzn wrote:
| Anyone have any details on the 'Most line changes in a single
| month' event last October? Some sort of mass refactoring? Pretty
| cool way to display this info, thank you.
| jwpalmer6 wrote:
| Thanks!
|
| Those milestone callouts are based on aggregate statistics for
| that month, so that's a combination of a number of changes.
|
| Most of the large changes that you see in the latter years of
| the project are the result of translation efforts. For example,
| this is from October:
| https://github.com/git/git/commit/c8774d0670b62447ae344d89a3...
| jheriko wrote:
| was totally expecting a gif of linus shitting on the community
| whilst academia open their mouths wide expectantly...
| jwpalmer6 wrote:
| OP here again. I forgot to mention that, because of my background
| in software development, I often create visualizations that are
| based on data from the development process. I find it to be a
| fascinating source of raw data that is underrepresented in the
| broader visualization space.
|
| I don't have any type of newsletter, but I do announce new
| projects on twitter: https://twitter.com/jeffpalmer
| tuxie_ wrote:
| Wow, from the data viz perspective this is super impressive. The
| amount of data you managed to display and how you organized it is
| very impressive.
|
| Maybe it's the amount of information, but I don't really know
| what to make of all that data. What conclusions did you arrive
| to? Where would you point someone like me who feels overwhelmed
| with all the information on screen?
|
| And finally, do you see yourself turning this into a more generic
| visualization tool for git repos in general?
| jwpalmer6 wrote:
| Thanks!
|
| I had two goals (at least) in mind while making this:
|
| 1) Experiment with some visualization approaches that I hadn't
| tried before. The annotated streamgraph, etc. 2) Tell the story
| of the history of git as a way to demonstrate just how many
| contributions go into complex open source software.
|
| I definitely got what I wanted out of the experience for the
| first goal - a large project like this (for me) taught me a lot
| about how to approach and structure this type of effort, and
| the limits of some of the technologies that I used.
|
| Regarding the second goal, I had wanted to layer on more of a
| narrative (using some type of scrollytelling or something
| similar), but I ended up realizing that that was going to be
| too difficult with the structure that I had created, so I ended
| up adding the annotations and leaving some of the narrative
| reconstruction up to the viewer. If I were to go back to this
| work, that's what I would try to refine.
|
| In terms of open source, I will do that but haven't yet because
| things are a bit of a mess and I was honestly tired of looking
| at it. I'll probably go back to that in a bit.
|
| Applying this to another repository in its current state would
| require a decent amount of manual data extraction/cleaning, but
| it's possible. I'm not convinced the results would be that
| interesting, however. I tried it myself as an experiment and
| was surprised how linear/regular some of the other repos were.
| omarhaneef wrote:
| My main takeaway is that Junio Hamano is supernaturally
| productive, and Git owes him a lot.
| sdesol wrote:
| Here's his contribution in the last 5 years
|
| https://public-001.gitsense.com/insights/github/repos?p=comm...
|
| Disclaimer: I'm the creator of the tool that is linked.
| Gehinnn wrote:
| I love such visualizations, nice work! Does this work for any git
| repository?
|
| Btw. for a visualization of all the git line endings settings,
| you might find this tool helpful: https://hediet.github.io/git-
| line-endings/ (just finished this tool this week)
| jwpalmer6 wrote:
| 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.
| shortstuffsushi wrote:
| 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 wrote:
| 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?
| shortstuffsushi wrote:
| 1. That's basically what I wrote :) although I collected
| different info. It can be really time intensive for bigger
| / older repositories...
|
| 2. Just going off commit author / email (and then
| corresponding gravatar) seems like enough. I get hand
| tailoring for something like this, but for a more "general
| purpose / throw a repo at me and I'll figure it out," I
| think using whatever you get is ok
|
| 3. Could try using tags for this, or I think specifically
| from Github, milestones / releases are stored differently?
| Don't know. I feel like this could also be an "include if
| present or ignore," although I do appreciate how it breaks
| up the history into a timeline
|
| I don't have any specific projects in mind - for my own
| playing, I just used my own personal / work repos that I
| had available on my computer. I think the bigger, popular
| projects like Angular, React, or even language projects
| .NET Core or TypeScript could be interesting. I don't know
| if they would make great graphs or not though, I imagine it
| would be largely trial and error.
| jamessb wrote:
| 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 wrote:
| Oh that's a good idea. Thanks!
| uhoh-itsmaciek wrote:
| 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 wrote:
| 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.
| uhoh-itsmaciek wrote:
| Ah, so not sure how you're checking, but it looks like your
| thresholds might be just too aggressive: it looks like my
| window.innerHeight < 1024 [1] and that's probably
| triggering the warning.
|
| [1]: https://developer.mozilla.org/en-
| US/docs/Web/API/Window/inne...
___________________________________________________________________
(page generated 2021-06-30 23:00 UTC)