Implement LocalGitClient.fetch_pack().

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
determine_wants must return a list

This patch forces determine_wants to return an empty list
when advertise_refs is True.
Add test for determine_wants (advertise_refs True)

Add test to ensure that determine_wants return an empty
list when advertise_refs is True.
Fix empty pack test.
Update before installing git.
Add porcelain 'tag'.
Clarify committish argument of 'show'.
Support non-commit objects and multiple objects in 'show' porcelain.
Add `dulwich.objectspec`.
Add max_entries argument to 'log' porcelain.
Avoid deprecated Exception.message.
Install fastimport in travis.
Add compat test for git ls-remote

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
UploadPackHandler must return if objects_iter is empty

objects_iter is not None if client does not want any refs.
This patch avoids UploadPackHandler to continue pack creation and raise
GitProtocolError "Server attempts to access capability before
asking client".

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Stop pointing users at Launchpad for bug reporting.
Add tests for shallow
Determine new shallow/unshallow
Add shallow support to ProtocolGraphWalker
Add shallow grafts to repo before fetching objects
Specify custom get_parents