When we talk about Git, Darcs and performance, people will invariably
ask the question "if Git is so fast, why don't you just implement your
stuff on top of it?"
One issue is that this could mean several things. For example, you
could try to have some sort of round-trip compatibility, acting as a
bridge to Git (where each patch corresponds to a commit, and vice
versa); or you could take the Iolaus approach and act as a porcelain
(providing Darcs features until you hit a certain long-term storage
event horizon, at which points you do things the Git way).
Here is another possible meaning to explore:
What if we stored the _darcs directory, patches and all, in a Git
It may be a tiny bit complicated, with posthooks all over the place, but
there are some benefits:
1. You can get really fast darcs get (see issue1282) by just cloning the
_darcs directory and then reading pristine to get a working directory
2. You get those short secure version identifiers that Zooko has been
talking about for years (see issue992). Here, for one version, you have
exactly one set of patches [the downside is that for one set of patches,
you can still have many versions, thanks to re-ordering, but maybe users
who care about issue992 don't really care about that in practice].
3. It may lead to some ideas about how to do branching (see issue555)
I know I've talked about this before and it may just be a
stupid/distracting idea, but I thought I should write it down anyway so
that at the very least, we can officially mark it as such.