TODO ---- * Git thinks that filenames are bytestreams, not character sequences. http://article.gmane.org/gmane.comp.version-control.git/122860 * Git can not work across different encodings, and admits as much. Then again Subversion can't either. * Our only hope is to ask Git for bytestreams and apply some heuristics as to the encoding and composition used. * ATM, setuptools-git returns files by their OS path, not the POSIX path that is returned by Git. It also resolves symbolic links within the same repository. * We might get away with passing along the bytestreams in Python 2, but in Python 3 we must return Unicode. * For passing through non-UTF-8 filenames under Python 3, use the 'surrogateescape' error handler.