> On a nutshell: how about using a peer-to-peer network as a darcs repo?
> The idea is simple. Instead of having one central repository, we would
> have a number of interconnected machines (some would call it a
> cluster), i.e. developer machines that are interested on having access
> to the repo. Changes made (patches recorded) to one machine would get
> distributed to the others using a peer-to-peer network.
Let me reformulate that. Suppose that instead of having patches
located on a machine, there is a single global pool of patches. How
this common pool is implemented is pretty much irrelevant -- it could
be a well-known server, a usenet newsgroup, a distributed hash-table,
or some other form of peer-to-peer network.
This idea is central to Monotone. It would be easy to implement in
Git, but fairly difficult to implement securely in Darcs.
In Monotone or Git, the complete history of a branch is represented by
the hash of the head commit. Thus, if you say
please forward your head to ABCDEF
anyone who actually manages to find all the data necessary to build
commit ABCDEF has exactly the same history as you do (unless of course
SHA-1 is broken). Thus, it is quite reasonable to have a common,
untrusted pool of commits; validation is provided by the head commit
patch.
Not so in Darcs: a history is represented by a ``context'', which is a
potentially large data structure, and due to the lack of end-to-end
validation, there is nothing that guarantees that if you and I have
the same context, we have the same history. Thus, allowing for a
common untrusted pool of patches would enable anyone to insert fake
data into your repository.
(Note that reliable end-to-end validation in Git and Monotone, and
powerful cherry-picking in Darcs are two faces of the same coin: you
get one or the other, but not both.)
We are thinking about end-to-end validation in Darcs, but you
shouldn't hold your breath. I suggest trying out Monotone if you want
to play with this sort of ideas.
Juliusz
_______________________________________________
darcs-users mailing list
[email protected]
http://www.abridgegame.org/mailman/listinfo/darcs-users