fairly complete implementation of libgit config