Avoid double lookups of commits during walking operations.

Fix a performance regression since the grafts code.
Pass chunks rather than full text to _parse_commit_or_tag.
Simplify handling of message-like objects.
Move commit parsing into a separate function.
Support reusing known sha during object creation.

This results in > 10% performance improvement during operations like rev-list.
Pass in known sha.
Split get_transport_and_path_from_url() out of get_transport_and_path().
Allow overriding default class for local git client access.
Fix typo: URI -> URL.
Split out tests for get_transport_and_path.
Add LocalGitClient.
Added checkout support to porcelain.clone. It's enabled by default
to mimick default git clone behaviour

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Update NEWS, add tests for clone with bare.
Support filesystems with 64bit inode and device numbers.

stat(2) can return 64bit filesystem inode and device, truncate them to 32bit.

Signed-off-by: Jelmer Vernooij <jelmer@samba.org>
Two minor optimizations in heavily used code paths.
Release 0.9.4.
Start on 0.9.5.
Move refs tests to dulwich.tests.test_refs.
Remove compatibility code for collections.defaultdict, in preparation of
dropping support for Python < 2.6.
Remove compatibility code for itertools.permutations, in preparation of
dropping Python2.4 and 2.5 support.