Add extra check for bytes to read in compute_file_sha.
Add tests for adding empty thin packs to object stores.
Limit delta copy length to 64K.

Version 2 packs are not supposed to contain delta copy opcodes that
encode lengths larger than 64K, so do not create them.  Version 3 packs
allow longer copy operations, but Dulwich and C Git always create
version 2 packs.
Update NEWS.
In dulwich.tests.test_object_store, use real sha lengths.
Strip newline from final ACKed SHA while fetching packs.

Signed-off-by: Jelmer Vernooĳ <jelmer@samba.org>
Update NEWS, add check for validity of shas passed to GraphWalker.ack.
Drop handling of python installations without wsgiref, as dulwich no longer supports them.
Use optparse to handle options in dulwich.web.main, support --port and --listen_address arguments.
Merge dul-web into dulwich command.
Add porcelain for branch delete/list/create.
Add 'fetch' porcelain.
Split out build_file_from_blob.
Add tag_delete porcelain.
Add ShaFile.copy()

Provide a convenient copy method for ShaFiles.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Sort imports alphabetically.
Fixed wrong string formatting call

The number of arguments were missing last one. As discussed it's debugging error, so we actually want the arguments to be printed in the error. This commit fixes the formatting error, and adds the list of arguments to be printed together with the error.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
ReceivePackHandler: only compute sorted refs if they will be used.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
`ProtocolGraphWalker._is_satisfied` should not travel all the paths.