[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)