shamazing
shamazing copied to clipboard
Go rewrite
Wanted to learn Go, so here we are.
This is probably a bad pull request, since it removes some features and doesn't add much to performance. On the other hand, no one cares about this repo so :notes: I can do whatever I wanttttt :musical_note:. All the performance hits are incurred through libgit2, so the Ruby and Go versions are more or less on par at the moment, though I have thoughts on that.
The output does look a little flashier now, though. Here's what we've got on our main GitHub repository at the moment, which takes about eight seconds or so to traverse the 200k commits:

I still need to figure out the binary situation, but that'll be cooler than demanding people install fucking Ruby.
Fixes #1.
@brianmario — Do you have a good rule of thumb on handling cross-compiled binaries in Go? I imagine cross-compile for x platforms/architectues and upload them to /releases, but most of the cross-compliation libs I've seen have like a billion different permutations. Seems like overkill. hub, for example, only has darwin amd_64 and 386, and linux amd_64 and 386.
Yeah I'd think just supporting the 3 major platforms and two architectures would be more than enough. Interesting that hub doesn't have a windows version, I just assumed it did. And that moving to go would have made that easier. Maybe the git dependency is harder on windows so they're avoiding it? (you know my plans for that :wink:)
Also, this pull is looking pretty good so far. I have a couple of code review things I could add but figured it was still a work in progress so I should hold off?
I have a couple of code review things I could add but figured it was still a work in progress so I should hold off?
Whenever you have some time it'd be great to hear things I could fix. :) No worries this time of year, though! Still kind of want to move some things around since I'm unhappy with a few things, but not super clear on what to fix quite yet.
:shipit: