[Haskell-cafe] Re: poll: how can we help you contribute to darcs?

Ben Franksen ben.franksen at online.de
Sun Aug 3 19:16:49 EDT 2008

Luke Palmer wrote:
> On Fri, Aug 1, 2008 at 3:45 PM, Eric Kow <eric.kow at gmail.com> wrote:
>>   "I would contribute to darcs if only..."
> I haven't used darcs much, so it's possible that I'll be forced to start
> contributing by my own binding hypothetical.
> I would contribute to darcs if only it had support / could have support
> for
> splitting and merging repositories.  For example, I like to work in a big
> repository of all my stuff ever, because most of the things I do rarely
> exceed an experiment in one file.  But once something does get big enough
> to
> be interesting, I want to split it off into its own repository.  But
> that's just the use case: doing it the git way (go through all patches,
> discard irrelevant ones, filter relevant ones, thus losing all correlation
> with the original repository) is not going to inspire me; I'd like to see
> support for it in the beautiful patch theory.

I have once proposed a scheme that would nicely solve this.

The naive way to emulate your split feature would be to create a branch
where you delete all the stuff you don't want and then maybe move the
subproject to a new directory (nearer the top-level). This doesn't work,
however, at least not in practice. This is because deletion of a file
conflicts with a change to the same file which leads to a huge amount of
conflicts each time you pull from the old combined repo. And the reason you
get these conflicts is that in darcs a file always gets emptied before
deletion, and this is because changing a file depends on its existence in
the first place. I proposed to change this and allow changes to
non-existing files, so called 'ghosts'. This has a number of interesting
consequences, among them that you could delete as many files as you want
and will never again get a conflict with changes to those files (that is,
unless you explicitly 'resurrect' the ghost).

Unfortunately few people (and none of the core-developers) seemed to be
interested :( The small thread that developed on the darcs-users list
should still be available in the archives if you are interested in the


More information about the Haskell-Cafe mailing list