I went looking for a library interface to git tonight. (I can already hear some of you laughing.) Turns out that my assumption that there must be a nice git library out there somewhere might have been a bit .. naive.
Git itself makes an archive of the common files that it uses in its various C apps and links those into each app. In what can only be a fit of humor, it calls this thing a "library" in its Makefile.
Yes, more humor: a naked Makefile. After all, real mean don't use pansy tools that might make life easy like configure of cmake, right? Anyways .. I really didn't go looking for a build system, I went looking for a library I could use to interact with a git repository.
Why a library? Well, I really don't want to be running external commands and then parsing their output. Unfortunately that seems to be what most other apps that provide git fronts seem to be doing.
I got slightly excited when I saw the "Interfaces to other programming languages" on the Git wiki. I though, "Ok, so I won't be doing this in C++, that's ok .." only to find out that I could write in ObjectiveC (uuuuh..) or Java (mmmmm.. no.) Both fail for not having KDE4 bindings. Unfortunately both the Python and Ruby git thingamabobies are for read only access. After all, who wants to commit, anyways, right? *sigh* Dashed once again, I return to the idea of doing it in C++, but the specter of having to parse command line output just makes me cry.
A small spark of hope remains in me knowing that I am not intimately familiar with the world of git and therefore may be missing that wonderful bit of interface glory that I call "libgit.so" in my daydreams.
Why would one want such a thing? With a nice sane API to a nice flexible SCM we might actually see some cool integration into desktop applications to make user's lives easier.
So .. does anyone out there have a link to such a "libgit.so" type thing? If so, I promise to make something cool with it. =)