7 ms·
Gource: Software Version Control Visualization
- grisma56giga 2y ago[dead]
- phoronixrly 2y agoThis pops up from time to time and each time I ask myself what is a useful application for it? Is it just eye-candy?
- onli 2y agoI'd say so, yes. But it's utterly cool to see yourself and the people you know create the nodes of a project over the years. In that way maybe there is some more to it, it gives perspective.
- shakna 2y agoI've used similar tools for tracing particular contributors, when investigating if they've been acting malisciously. Makes it easier to get a quick overview of their efforts, and how painful it will be to review everything they've touched.
- exe34 2y agowhat does it look like when they act maliciously? does the avatar look over its shoulder and move around furtively like a cartoon?
- shakna 2y agoThere's network alerts of outgoing VPN connections to Russia, Tor usage, and usage of encrypted emails, none of which fall within work duties, accompanied by anti-West sentiment at the water cooler. It could have been nothing. Which is why you investigate. It wasn't nothing. EDIT: You probably meant the code. Whoops. That's simple: Removing guardrails. Removing a null check, because it's "unnecessary" or "unreachable", etc. Opening memory holes, and burying that in larger commits.
- exe34 2y agoah that makes sense thanks!
- rapnie 2y agoI had exactly the same impression. The eye-candy side is highlighted, yet just a gimmick.
- LauraMedia 2y agoI personally had to use it once to explain to someone higher up why there hasn't been a user-facing feature change in a month. He did not understand that things can change without him seeing it in the frontend and I was in the middle of a crucial rewrite.
- PicassoCTs 2y agoTHIS.Could be such a great tool to visualize work being done for outsiders. Just a Screen in the lobby showing the commit history up until today in an endless loop.
- bjarneh 2y agoIt is super useful. We started a project with some hired consultants about a year ago. Did not engage much with that project, but when I was recently asked to get back into the loop and find out what these people had been up to, a quick view of the 'gource' visualization was all that was needed in order to know who was doing stuff, and how much they had been working on it etc. At least I knew who was just attending the meetings, and who was actually coding and so on :-)
- lucianbr 2y agoIsn't this the same thing as measuring developer productivity by number of lines of code or commits, pushes and such?
- sbarre 2y agoMore or less, but OP didn't say it was the only measure used. Just like LOCs and commits, it's a starting point. A general indicator of where you need to dig deeper or who to prioritize in your review.
- bjarneh 2y agoExactly, it's a very quick way to get an overview. Just by looking at how many developers have been working on things + their frequency of committing code is very helpful. Tons of files appearing at once is a quick give away that something is either copied from another project, or some massive "technology" (read: library, framework) is added; which can be hard to maintain unless the stuff being added is very mature.
- whateveracct 2y agoIt is sadly. And unfortunately, it's still a commonplace measure even at the "best" companies. They say "oh it's not the only measure" ofc. Anything to downplay it to ICs. But then you chat with your jaded manager and you hear echoes of the insanity that goes on in performance review calibration and you aren't so sure about those qualifiers anymore..
- 2y ago
- IshKebab 2y agoYeah this is from the class of "oooo pretty colours" visualisations, not "now I've seen it visually I understand better" visualisations.
- helpfulContrib 2y ago[dead]
- whateveracct 2y agoIt's fun, at least. At a startup I cofounded, we'd run it a few times a year and it was cool to see the codebase grow from nothingness. And to see various files appear that were due to different key events in our company's history.
- jimmySixDOF 2y agoI can't imagine a worse overall take on this in general because it fails to compare the alternative which is you do nothing or maybe the idea in some of these replies is just anything outside of `tree -d` is superfluous to the task at hand waste of time and bare metal GPU. Appreciation for both the form and the function well blended in an artful way should not be offhandedly dismissed. We make a conscious choice when we build things to consider the users delight to be our responsibility, or not, so taking the extra step to make it beautiful as well as useful may sound superfluous but it isn't. Not by a long shot. Also Amelia Wattenberger at GitHub has a great vistualization tool for those who think Gource is too much [1] while on the other side of the spectrum Ren Yuan [2] has been knocking out these amazing audiovisual art-meets-engineering pieces for all the big repos. [1] https://githubnext.com/projects/repo-visualization https://githubnext.com/projects/repo-visualization [2] https://renyuan.io/commit/ https://renyuan.io/commit/
- dagmx 2y agoIt can be motivational to show progress over a milestone or larger time period.
- cess11 2y agoI research and make valuations of software, tools like this help me quickly get a feel for the history and dominant trends in how it was developed.
- motohagiography 2y agoI use it for some security analysis.
- bradhe 2y agoHah, last time I used Gource was on a Rails project in 2012. Cool to see it pop up from time to time.
- nurettin 2y agoExactly my thoughts. I used it once to showcase the development phase of a rails project to C levels back in 2012 and they loved it.
- fHr 2y agoGource is cool!
- 4gotunameagain 2y agoMany years ago I used Gource to create a visualisation of the development of my Bsc thesis project, which I promptly displayed on the last slide of my presentation. It was appreciated by exactly zero people. No regrets, I loved it.
- martinn 2y agoA while back while learning rust, I built a little tool that would kind of give you an aggregate view of what gource shows you but based on lines of code rather than commits. (i.e. see top contributors by lines of code on any git repo). https://github.com/martinn/repoblame https://github.com/martinn/repoblame if anyone's curious.
- brabel 2y agoThat's cool, would be nice if you got a GitHub Action to build the binaries and publish them on Releases... or even publish to crates.io :)
- k__ 2y agoI once joined a company where a Dev was in the process of rewriting a big codebase. I didn't think much of it and run Gource on it for fun. Turns out, he did countless rewrites over the year. Interesting to watch and explained why the CEO seemed to so concerned about the dev, lol
- juangacovas 2y agoSame here, gource did help to visualize a complete revamp / refactor of a software, from the current mess by that time, to the final, pratically complete rewrite it was (through a process, since keep it working was mandatory). Really interesting to see the "mess" mutating into a more organized file struct, etc.
- Annatar 2y ago[dead]
- ghjfrdghibt 2y agoI used this once, completely unrelated to version control, to visualise the number of referrals my dept had received over time (broken down but year and month) to visually show the growth of referrals and why we needed more people to manage the influx. Was it cool? Yes. Did it show the issue in an easily to understand way anyone could understand? Yes. Did it change anything? Hell no.
- throwpoaster 2y agoGource is very useful getting up-to-speed on a new project. It gives you a quick visual history of the project and usually makes it clear where the problem spots are: the places with the most laser fire are the fire fights.
- bencarlos 2y ago[dead]
- starlite-5008 2y ago[dead]
- stpedgwdgfhgdd 2y agoCan’t find install instructions for macos. No docker image. Only way to try it out is build it?
- netruk44 2y agoI believe gource is on homebrew, if you have that available.
- stpedgwdgfhgdd 2y agoThanks
- linkdd 2y ago> No docker image This makes me sad that this became an expectation. And yet, I've been distributing softwares via Docker for almost a decade now, but CLI/GUI tools?
- stpedgwdgfhgdd 2y agoI don’t see the problem for quickly trying out code… The code is in C afaict. If it would be Go or Java, I would be fine to build it myself, but C…. I’m worried about getting into a rabbit hole especially as GPU support is required. Building with GPU on mac silicon can be pretty complex. Compare this to running a container with 1 - 2 lines. Btw I should have inquired about a container image, don’t want to imply that Docker is the default.
- cozzyd 2y agoit took less than a minute to figure out dependencies and build on my workstation (EL9). If you don't have an OS with a package manager, it might be harder though...
- liveoneggs 2y agothere are a few community images on docker hub
- pretty_colors 2y agoI once automated the uploading of >26k Gource videos to YouTube. I sorted GitHub by star count, applied some filters (e.g., had to have X commits, Y files), ffmpeg, YT API. That all happened on my little 2015 MBP. Good memories. I'll clean up the repo and share my hacky code sometime. I miss Ruby, what a fun language with which to play. IIRC, there's another YT channel that took up the torch. I'm grateful they did. I know, they might seem a little spammy, and it can be frustrating when you Google for a repo and only find a mostly useless YT video of a Gource visualization. And yet, random devs used to email me with grateful messages every week. I felt like, in some microscopic way, I was doing good. Yeah, I need to ponder and write on that. Hm. Well, this bubbly isn't going to drink itself. I'll edit this comment into shape later. I'm on my phone at Hedwig's. Love you to the random internet stranger who read this comment. Love you to the person who posted this Gource link. Love you to Andrew Caudwell, the creator of Gource. He seems like a good fellow, that Andrew Caudwell. Yes, quite so.
- pretty_colors 2y agoQuickly, before I :homer-simpson-fade-into-bushes: I think there is much value in Gource visualizations. My remake was rooted in a vocal minority who expressed a few negative comments on my uploads saying they were useless. I suspect they were just frustrated that they were looking for docs/tutorials and only found my video, heh. With the right options and extensions/augmentation, Gource is incredibly useful. Especially when slowed down and when you add custom tailored config for each repo. That takes time, but can be automated as well. Ooo, that sounds so much fun!! Issue titles, big refactor custom highlights / slow-downs. Have it right next to JSCity (or equivalent for non-JS), gitstats, and... What was that other tool... You know, the one that makes watching network traffic fun? Oh! Codeswarm? No... It was... I'll find it. It's like ping pong. Where is my AI side panel when I actually need info without leaving HN?? Ok bye. Next time I spam the planet with Gource videos, I vow to do it more justice :cat-salute:
- IshKebab 2y ago> I once automated the uploading of >26k Gource videos to YouTube. Wow, what a monumental waste of resources. I'm kind of surprised you didn't get banned from Youtube for that.
- sylware 2y agoThat would mean there are active networks of people working against net neutrality? If true, I wonder who they are...
- qrush 2y agoWell this rang a bell for me! Back in 2012 I used this to generate a visualization of our work getting Basecamp 2 shipped. Behold the laser pew pews of code: https://player.vimeo.com/video/37822969 https://player.vimeo.com/video/37822969
- diggan 2y agoAnyone have any example videos generated by Gource they wanna share? I'll go first: Here is a Gource video of some months of development on Typeform when I worked there: https://www.youtube.com/watch?v=jTo9qy5mIWg https://www.youtube.com/watch?v=jTo9qy5mIWg Uploaded ~10 years ago, and I'm pretty sure none of that code is being deployed anymore, at least I hope so.
- PenguinRevolver 2y agoI can't access it; the video is set to private.
- diggan 2y agoMy bad, should be unlisted and viewable now. Thanks for letting me know.
- GypsyKing716 2y agoNope.
- diggan 2y agoTry hard refresh? In a private window, I see the title says "Typeform development in a video" and beneath that "Unlisted".
- withinboredom 2y agoI create a gource every couple of years wherever I happen to be working. Here's my personal projects from 2023: https://www.youtube.com/watch?v=BuzFtbM3qU0 https://www.youtube.com/watch?v=BuzFtbM3qU0
- diggan 2y agoHeh, you made exactly the same mistake as me initially, your video is set to private :)
- vtodekl 2y ago[dead]
- dagmx 2y agoI used this frequently, but it really requires your team to enable squashed merges and have consistent feature sizes. Otherwise a person who commits often (had someone committing per line changed) will make it super noisy. And someone who merges in a giant branch will just blow up the screen for a bit.
- diggan 2y ago> commits often (had someone committing per line changed) As long as they squash their history before it goes into the branch everyone shares/branches off from, I couldn't care less how they do their work. But, pushing that aside, what could be the supposed benefit of committing each line like that? They'd spend more time writing commit messages than actual code, assuming the commit messages actually had proper meaning in them,.
- dagmx 2y agoInsecure coder or just trying to pump up their commit activity.
- bqmjjx0kac 2y ago> what could be the supposed benefit of committing each line like that? If you're making two meaningfully different changes, I would always say two tiny commits are better. Not only for organization, but to make it easier to revert just one change.
- diggan 2y ago> If you're making two meaningfully different changes, I would always say two tiny commits are better. Not only for organization, but to make it easier to revert just one change. As long as the tests pass on every commit that ends up the main development branch, you can pretty much do it however you want. But committing per lines changed isn't "making two meaningful different changes", it's saying since they are on two different lines, they aren't related, which just seems wrong.
- whalesalad 2y agodrives me bonkers when a visualization tool has no examples/screenshots in the readme
- mvdwoord 2y agoI would agree typically, but for repositories which have a link to the main website for the product including visual examples like this one... not so much. It's one more click.
- abotsis 2y agoI can across this years ago, it’s a really useful way to view any actor/target relationships in the time domain- not just source control.
- leonjza 2y agoI have fond memories of parsing random things to pipe to gource as a younger me. The code is ancient, but here [0] was an experiment to get something like nmap (and other data) ready to feed to gource. Fun to watch indeed! [0] https://github.com/leonjza/py2gource https://github.com/leonjza/py2gource