add trivial tests for DiskObjectStore.add_{thin_,}pack.
server: Explicitly specify allowed protocol commands.

This means callers do not have to check the return value of
read_proto_line themselves, avoiding lots of duplicate code like
"if command not in (...): raise".
Refactor some of dulwich.tests.compat.server_utils.
Delegate SHA peeling to the object store.

Once a ref is resolved to a SHA, we no longer need access to the
RefsContainer, so the ObjectStore can do all the work.
Allow overwriting id property of objects in test utils.
Add utility functions to DictRefsContainer, useful for tests.
Use real in-memory objects rather than stubs for server tests.
Make sure TestCase.setUp() is called, remove unused import.
Provide strnlen() on mingw32 which doesn't have it.
Bare-repo related changes: have no index and bare=true in config.
MissingObjectFinder: minor cleanup: 80 chars, others.
Use python-fastimport.
Fix exporting fastimport streams using python-fastimport.
Cope with strnlen() not existing on Mac.
Add eof() and unread_pkt_line() methods to Protocol.

Change-Id: I2d64436952aee91aa4396a9dc2f028b98890343e
server: Correct short-circuiting operation for no-op fetches.

There are two distinct cases where determine_wants might return
"nothing":
 - The client may have finished its request, in which case it is
   expecting a 0-object pack.
 - We may be in the middle of a stateless RPC packfile negotiation
   request, in which case we should close the connection without writing
   a packfile.

This change distinguishes between these two cases by allowing
determine_wants to return either None, indicating that no pack should
be sent, or an empty iterator, indicating that an empty pack should be
sent.

Added a compat test for the no-op case that failed before.

Change-Id: Ia24f86cf8aa30d040eaf2f06a58e1d610cdeb32f
Add test for subject parsing in git_am_patch_split.
[Dulwich-users] [PATCH] Added unit tests for
 dulwich.object_store.tree_lookup_path.* dulwich/tests/test_object_store.py
  (TreeLookupPathTests): This test case contains a few tests that ensure the
   tree_lookup_path function works as expected.
Handle patches with more than one commit line.
Added unit tests for dulwich.object_store.tree_lookup_path.

* dulwich/tests/test_object_store.py
  (TreeLookupPathTests): This test case contains a few tests that ensure the
   tree_lookup_path function works as expected.