[darcs-users] peer to peer darcs
Tommy Pettersson
ptp at lysator.liu.se
Mon Aug 2 12:49:32 UTC 2004
Could `darcs send' be thought to use a context file as input?
If so, here is an idea:
I will call each person and their repo of the synchronizing
network a node.
All nodes could (besides patches) at times (like after they
have applied new patches) send their contexts to all other
nodes. Every node would store (besides email addresses)
each other node's latest known context in some way. Then,
upon sending new patches, each node would be sent new patches
according to its latest known context.
When a node applies those patches, it should send out its
new context as a verification, and to quit getting them again
and again.
For this to work well, it is necessary that each node upon
receiving new patches, apply them and send out its new context
(preferably automatically) before a lot of other nodes make a
lot of new emissions. All patches in the (global) repo that
are not in a node's latest known context, will be sent to it
EVERY time ANY (synced) node sends patches.
My reasoning is to always send at least enough. With this
setup, all nodes don't even have to know all other nodes.
The network just needs "email edges" to span it. One single
node could attach a new node, and patches will still reach the
entire network. Also boot-strapping gets a simple solution;
a new node is initialized with the empty context. (But for
large repos it is probably better to transmit a copy of the
repo in some other way and initialize it with that context.)
--
Tommy Pettersson <ptp at lysator.liu.se>
More information about the darcs-users
mailing list