Rework server protocol to be smarter and interoperate with cgit client.
authorDave Borowitz <dborowitz@google.com>
Wed, 20 Jan 2010 18:59:34 +0000 (10:59 -0800)
committerDave Borowitz <dborowitz@google.com>
Tue, 9 Feb 2010 17:41:56 +0000 (09:41 -0800)
commit032036b37eeb889cbde312e44c4c75268169fa41
treed825ce91ced134d77d8dcd42dae06546eb64e290
parent532b9c2b4877c18513d5e926a822efb28ceea330
Rework server protocol to be smarter and interoperate with cgit client.

This largely consists of correctly implementing multi-ack and
single-ack mode on the client side as well as stopping graph walking
when a sufficient set of common commits is found. Tests are included,
and the implementation has been lightly tested against the cgit
client. However, the dulwich server does not interoperate with the
dulwich client anymore; this will be fixed in a future change.

This change also preserves the GraphWalker interface so as not to
break hg-git or bzr-git.

Change-Id: Ia63e7fd0da9ff17c9f3f546149b474eb4f8bb466
dulwich/protocol.py
dulwich/server.py
dulwich/tests/test_protocol.py
dulwich/tests/test_server.py [new file with mode: 0644]