
Show HN: Go-git – low-level and extensible Git client library in Go - mcuadros
https://github.com/src-d/go-git
======
toni
So a while back I was cold-emailed by a recruiter at source{d} (the makers of
this library). He wrote that after analyzing my Github profile, he has a great
opportunity for me in Country A. I responded back by sending him my private
phone number and showing interest in talking to him about this opportunity on
the phone.

Usually At this point, serious recruiters will do call you. But instead, he
wrote that before going any further, he would like to ask me "a couple of
quick questions" and requested if I could email him back my answers.

The kind of questions I was supposed to answer were pretty amusing: for
example, one of the questions involved telling "If I live near Country A."

But he could easily find this out by looking at the country code of the phone
number I just gave him in the previous email. My location is also public on my
Github profile, so he could have easily found out that I live in Country B.
which is around an hour away from Country A. The rest of the questions were
also showing the recruiter's minimal knowledge of my actual Github profile.

At this point it was pretty evident that I was corresponding with a bot. They
were running different set of algorithms against different set of people,
trying to analyze the results.

~~~
eisokant
Hey Toni, Founder of source{d} here. First of all my apologies for the bad
experience. This should have not happened. We're a team of developers
ourselves (no recruiters) working on making sure that these kind of situations
don't happen to any developer (we started this because we were fed up with the
bad practices in recruitment). We're definitely not a bot, I can promise you
this. Every email gets read by a developer themselves (our team:
[http://sourced.tech/about](http://sourced.tech/about)) and personally
answered. If you send me an email (eiso@sourced.tech) I'll personally figure
out what happened here.

~~~
stevekemp
FWIW I've also had what felt very much like automated mails from your company.
I've started marking them as spam after the first two.

~~~
orf
Same, I got one asking if I was interested in a job the other side of Europe.
Nope. Interesting idea for a product though

~~~
Liru
I got one saying my experience with Go would "be a good fit" with a company.

My Go codebase at the time, on that account, consisted largely of hacky
products, no tests, no web-server stuff, high coupling and complexity, and
below average documentation. If that indicates experience with a language, I'm
almost afraid to ask what WOULDN'T be a good fit.

That, and their stated "real-time" requirements for said company's product
made me laugh.

------
patrickg
Shameless plug:
[https://github.com/speedata/gogit](https://github.com/speedata/gogit) (I use
that one with a 300 Gig repository)

Edit: this is the backend used in
[https://ctanmirror.speedata.de/](https://ctanmirror.speedata.de/) a "travel
back in time" archive of CTAN (back to 2013-03-17, IIRC)

------
goda90
Missed the opportunity for word play from the get-go.

~~~
jerf
"go-git" is already wordplay on the commonly-used "go get" command.

~~~
stcredzero
And "go get" is already wordplay.

------
mrdrozdov
Reminds me of `gitgo`
[https://github.com/ChimeraCoder/gitgo](https://github.com/ChimeraCoder/gitgo)

~~~
mcuadros
Yep is a very similar approach, I'm not familiar with gitgo, but we started to
work on go-git before gitgo was published, so this is the reason why we have
our own project instead of collaborating on a existing one.

------
Gurrewe
Oh, so this is how Tyba found me. Cool stuff!

Is there a way to see what information sourced has about yourself?

~~~
eisokant
Hi Gustav! It is, all though these days we're named source{d}. We're working
on some very cool visualisations to release later this year that allow you to
dig in on all of the insights we've learned from your code. Right now there is
no way yet, we're completely emerged on focusing on improving our backend (and
doing some very cool stuff around deep learning to analyse your code). I'll
keep you posted once we release.

------
stephenr
What are the chances someone could use this to build a tool to provide
structured output for git commands.

SVN had the --xml flag for pretty much every command, allowing for 100%
parseable output, with git ( in particular git log) there is no 100% solution
- the best you can do is use --pretty=format and create delimiters you _hope_
aren't used in the commit message (or author names/emails, etc) itself.

The output doesn't have to be XML. JSON or even escaped CSV would be fine.

------
xiaq
Golang is the new JavaScript: everything that can be rewritten with it will be
:)

~~~
brudgers
Golang is the new Java. Google designed it for legions of corporate systems
coders. It is ultimately destined to be seen as the enterprise language that
it is [twenty years ago all the cool kids loved Java]. Google policy is no map
function for you, it's just more palatable to bake it into the language than
an HR document...it's still pure policy steeped in pointy haired logic.

Don't get me wrong, it's better than it could be: at least it doesn't have
something equivalent to UML diagrams. But it's still a corporate policy. It
just feels refreshing because...wait for it...it brings garbage collection to
C++ programmers. And where have we heard that before?

~~~
mwsherman
Maybe, in the sense that Go is designed for the use case of large teams of
everyday coders (i.e., not PL enthusiasts). A similar use case to Java, no
doubt.

That said, Java (and C#, which is where my experience lies) are fundamentally
bureaucratic languages. Things like hierarchical namespaces and several layers
of accessibility very much mirror their human-org counterparts. Explicitly
implemented interfaces are a way of saying “I comply”.

Go, by contrast, is much flatter. Which, perhaps, is where organizations are
heading. And interfaces are implicit, which is a way of just doing the job
instead of declaring compliance.

~~~
mrits
I wonder if you have taken the time to use Go. I no longer use it but I found
it much more enjoyable than C++. I went back to Python for my side projects.

~~~
mwsherman
Yes, a decent amount, I am a fan:
[https://github.com/clipperhouse/gen](https://github.com/clipperhouse/gen)

------
dh997
I once had a cold-call recruiter tell me Go was worthless. I asked the
recruiter to never call me again and hung up.

People whom are both disrespectful and unable to see where their hockey puck
sports analogies will be later on have marginal utility and are likely
liabilities... don't get involved with those sorts.

------
shazow
Here's one more while we're at it:

[https://src.sourcegraph.com/go-git](https://src.sourcegraph.com/go-git)

This one is a fork of gogs' git implementation that I worked on briefly.

