darcs

Issue 1752 RND: store _darcs in a git repository?

Title RND: store _darcs in a git repository?
Priority wishlist Status given-up
Milestone Resolved in
Superseder Nosy List darcs-devel, dmitry.kurochkin, kowey
Assigned To
Topics Git, Performance

Created on 2010-02-25.07:56:12 by kowey, last changed 2017-07-30.23:47:25 by gh.

Messages
msg10072 (view) Author: kowey Date: 2010-02-25.07:56:06
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
repository?

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.
msg10073 (view) Author: kowey Date: 2010-02-25.07:59:52
You can actually do some experiments with this by cobbling together some
shell scripts to run as posthooks.  Here the _darcs directory used by
Darcs would be the working copy of the git repository.
History
Date User Action Args
2010-02-25 07:56:12koweycreate
2010-02-25 07:59:54koweysetmessages: + msg10073
2017-07-30 23:47:25ghsetstatus: needs-reproduction -> given-up