[CC'd to the Git mailling list; please CC any replies to Darcs-Devel]
David, Ian,
I'd like to upgrade the Git code used in Darcs to 0.99 (we're currently using 0.6). There are two good reasons for that, the first of which is actually a showstopper:
- the format of Git repositories has changed incompatibly, with a new kind of thing called the ``pack'' (a very neat performance hack, by the way); hence, Darcs-Git is unable to read recent Git repos, unless you use the Git tools to unpack them;
- 0.99 actually exports usable interfaces, which will allow us to use pristine Git sources in Darcs.
Now I'm wondering how to do that. Currently, I'm using a nasty hack using the C preprocessor to include just the sources we need in Darcs. As 0.99 builds a ``libgit.a'', I'd like to use that instead.
There are three ways to do that:
(1) require that the users put a suitable libgit.a in /usr/local/lib
before building Darcs, and distribute a tarball of Git from
darcs.net; (2) include just the sources needed for libgit.a in Darcs, and have
the Darcs build build a local libgit (3) as (2), but include all of Git, including their
``user-friendly'' scripts.Solution (2) will include 33 files totalling 167KB, while (3) is about a megabyte of source.
My personal favourite is solution (2), as it is simple for both the users and us. I'm not very keen on (1), as it will cause problems when the friendly Git folks change their interfaces, but have no strong dislike towards it if it's what you think is right. (3) is definitely overkill.
Juliusz