Hi,
Justin Patrin wrote:
> Only for the server. If the client has a full database then its merkle
> tree is much larger and the refinement is always going to be more
> costly than if the server contained the entire history, at least if I
> understand the idea of merkle refinement correctly. Finding a single
> missing new node vs. a mess of missing history nodes that the server
> doesn't want seems to me to be a largish difference.
You are assuming that every node builds a merkle trie for all the
revisions it has. This does not necessarily have to be the case, as the
existing branch conditions already show: if you only want to sync branch
n.v.m.cvsimport-branch-reconstruction, monotone syncs only the revisions
needed.
You can easily do the same, if the two synching nodes agree on a
timespan, for which they are interested in. I.e. saying "all revisions
of the last two months for n.v.m.*".