Wiki: WireProtocol

Eric Hopper hopper at
Fri Sep 2 22:01:51 CDT 2005

I'm looking at this document and finding it slightly confusing.  I wish
it were editable because then I'd just put in my guesses about what
certain things mean and watch to see if I was right.  :-)


 for node in list:
   follow the linear section of a branch back to its branchpoint
   return (tip, base, p1, p2)
   (this reduces round trips for long linear branches)

Do p1 and p2 refer to the parents of base?  What happens if the search
goes all the way to the root node?  You might also state that a
branchpoint might be called a mergepoint if you were looking at things
from the other direction.  :-)


 for tip, base in list:
   walk back a linear branch, return elements 1, 2, 4, 8..
   (and this lets us do bisection search if we diverge in the middle of
   one of these long branches)

What happens here if the client hands you a tip and base that do not
have a linear relationship?  Do you walk from the base to the tip when
returning elements?  If you don't, how is a search accomplished?  Since
presumably it's the tip that won't be known, you'll always return the
same pattern of elements no matter what the client specifies as the

Does the protocol allow for streaming HTTP requests?

Also, the description of a changegroup isn't quite clear enough.  What's
a link hash?  What happens if a node doesn't have a second parent?  are
all the different kinds of group the same format?  If so, why are there
different kinds of group?

"It does me no injury for my neighbor to say there are twenty gods or no God.
It neither picks my pocket nor breaks my leg."  --- Thomas Jefferson
"Go to Heaven for the climate, Hell for the company."  -- Mark Twain
-- Eric Hopper (hopper at --
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 189 bytes
Desc: not available
Url :

More information about the Mercurial mailing list