jelmer/dulwich-libgit2.git
11 years agoProvide C implementation of tree item sorter.
Jelmer Vernooij [Wed, 31 Mar 2010 15:44:14 +0000 (17:44 +0200)]
Provide C implementation of tree item sorter.

11 years agoSupport determining blob id without joining all chunks first.
Jelmer Vernooij [Wed, 31 Mar 2010 14:09:00 +0000 (16:09 +0200)]
Support determining blob id without joining all chunks first.

11 years agoAllow accessing Blob contents as chunks.
Jelmer Vernooij [Wed, 31 Mar 2010 13:58:32 +0000 (15:58 +0200)]
Allow accessing Blob contents as chunks.

11 years agoUse urlparse.parse_qs rather than deprecated cgi.parse_qs.
Jelmer Vernooij [Wed, 31 Mar 2010 13:33:44 +0000 (15:33 +0200)]
Use urlparse.parse_qs rather than deprecated cgi.parse_qs.

11 years agoIgnore deprecationwarnings from known deprecated methods during testsuite run.
Jelmer Vernooij [Wed, 31 Mar 2010 13:32:59 +0000 (15:32 +0200)]
Ignore deprecationwarnings from known deprecated methods during testsuite run.

11 years agoFix warning stacklevels.
Jelmer Vernooij [Wed, 31 Mar 2010 13:26:27 +0000 (15:26 +0200)]
Fix warning stacklevels.

11 years agoAdd ShaFile._raw_length.
Jelmer Vernooij [Wed, 31 Mar 2010 13:24:43 +0000 (15:24 +0200)]
Add ShaFile._raw_length.

11 years agoRepo.get_blob, Repo.commit, Repo.tag and Repo.tree are now deprecated.
Jelmer Vernooij [Mon, 29 Mar 2010 11:01:49 +0000 (13:01 +0200)]
Repo.get_blob, Repo.commit, Repo.tag and Repo.tree are now deprecated.

11 years agotest_repository: add test for ObjectStore.find_common_revisions()
Tay Ray Chuan [Mon, 22 Mar 2010 03:54:34 +0000 (11:54 +0800)]
test_repository: add test for ObjectStore.find_common_revisions()

Demonstrate that find_common_revisions() returns common heads, not
revisions.

11 years agoMark current version as 0.5.1.
Jelmer Vernooij [Sat, 27 Mar 2010 16:23:06 +0000 (17:23 +0100)]
Mark current version as 0.5.1.

11 years agoImplement RefsContainer.__contains__.
Jelmer Vernooij [Sat, 27 Mar 2010 16:21:50 +0000 (17:21 +0100)]
Implement RefsContainer.__contains__.

11 years agoImprove formatting, update docstring.
Jelmer Vernooij [Sat, 27 Mar 2010 13:16:07 +0000 (14:16 +0100)]
Improve formatting, update docstring.

11 years agoAdd Repo.stage.
Jelmer Vernooij [Wed, 24 Mar 2010 11:10:25 +0000 (12:10 +0100)]
Add Repo.stage.

11 years agoMove get_transport_and_path to dulwich.client.
Jelmer Vernooij [Wed, 24 Mar 2010 10:27:04 +0000 (11:27 +0100)]
Move get_transport_and_path to dulwich.client.

11 years agoAdd docstrings.
Jelmer Vernooij [Wed, 24 Mar 2010 10:20:31 +0000 (11:20 +0100)]
Add docstrings.

11 years agoImprove docstrings.
Jelmer Vernooij [Tue, 23 Mar 2010 14:18:14 +0000 (15:18 +0100)]
Improve docstrings.

11 years agoIn threaded programs, more than one thread can try to add the same object at
Bruce Duncan [Tue, 23 Mar 2010 11:37:55 +0000 (12:37 +0100)]
In threaded programs, more than one thread can try to add the same object at
the same time and this can cause os.mkdir to fail.

11 years agoUse syntax understood by git am.
Jelmer Vernooij [Sun, 14 Mar 2010 19:04:33 +0000 (20:04 +0100)]
Use syntax understood by git am.

11 years agoMake sure mode is initialized.
Jelmer Vernooij [Fri, 12 Mar 2010 16:36:47 +0000 (17:36 +0100)]
Make sure mode is initialized.

11 years agoFix trailing newlines in generated patch files.
Jelmer Vernooij [Fri, 12 Mar 2010 16:35:03 +0000 (17:35 +0100)]
Fix trailing newlines in generated patch files.

11 years agoThe 'committer' and 'message' arguments to Repo.do_commit() have
Jelmer Vernooij [Thu, 11 Mar 2010 14:00:12 +0000 (15:00 +0100)]
The 'committer' and 'message' arguments to Repo.do_commit() have
been swapped. 'committer' is now optional. (Jelmer Vernooij)

Add some TODO items.

11 years agoAdd Index.commit.
Jelmer Vernooij [Thu, 11 Mar 2010 13:55:12 +0000 (14:55 +0100)]
Add Index.commit.

11 years agoAllow specifying path to 'dulwich log'.
Jelmer Vernooij [Thu, 11 Mar 2010 17:13:36 +0000 (18:13 +0100)]
Allow specifying path to 'dulwich log'.

11 years agoSimplify clone code.
Jelmer Vernooij [Thu, 11 Mar 2010 17:09:56 +0000 (18:09 +0100)]
Simplify clone code.

11 years agoFix Repository.__setitem__.
Jelmer Vernooij [Tue, 9 Mar 2010 13:15:31 +0000 (14:15 +0100)]
Fix Repository.__setitem__.

11 years agoFix indentation.
Jelmer Vernooij [Tue, 9 Mar 2010 13:14:17 +0000 (14:14 +0100)]
Fix indentation.

11 years agoadd testrepository magic.
Jelmer Vernooij [Tue, 9 Mar 2010 01:14:48 +0000 (02:14 +0100)]
add testrepository magic.

11 years agoAdd Dave to authors.
Jelmer Vernooij [Sun, 7 Mar 2010 16:51:12 +0000 (17:51 +0100)]
Add Dave to authors.

11 years agoRemove unused imports, limit import of nose to one file (so it's easier to
Jelmer Vernooij [Sun, 7 Mar 2010 16:44:26 +0000 (17:44 +0100)]
Remove unused imports, limit import of nose to one file (so it's easier to
replace the SkipTest class with e.g. the one from testtools).

11 years agoMerge Dave.
Jelmer Vernooij [Sun, 7 Mar 2010 16:40:58 +0000 (17:40 +0100)]
Merge Dave.

11 years agoRemove some unused imports.
Jelmer Vernooij [Sat, 6 Mar 2010 00:01:11 +0000 (01:01 +0100)]
Remove some unused imports.

11 years agoMerge support for no-progress capability, some PEP8 fixes and removal of unused imports.
Jelmer Vernooij [Fri, 5 Mar 2010 23:59:30 +0000 (00:59 +0100)]
Merge support for no-progress capability, some PEP8 fixes and removal of unused imports.

11 years agoMerge server capability refactoring from Dave.
Jelmer Vernooij [Fri, 5 Mar 2010 23:43:20 +0000 (00:43 +0100)]
Merge server capability refactoring from Dave.

11 years agoAdd include-tag capability to server.
Dave Borowitz [Mon, 22 Feb 2010 18:26:02 +0000 (10:26 -0800)]
Add include-tag capability to server.

For this, we need to pass an include_tag flag as well as a dict of
shas that we kno have tags pointing to them all the way down to
MissingObjectFinder.

Added unit test to server.py, but still missing MissingObjectFinder
tests.

Change-Id: Ifd5e623c712842d0eb5133fb5fb78ab2c8c6970f

11 years agoAdd no-progress capability support to UploadPackHandler.
Dave Borowitz [Fri, 19 Feb 2010 23:20:10 +0000 (15:20 -0800)]
Add no-progress capability support to UploadPackHandler.

The progress function is now a method rather than a lambda, since it
needs to check the handler's state in order to decide whether to
write. Since progress is called many times, also changed
_client_capabilities to be a set. Added simple tests for the progress
method.

Change-Id: Id6b48272af0da10ae6c99512ec1706c0d0309455

11 years agoRefactor server capability code into base Handler.
Dave Borowitz [Fri, 19 Feb 2010 21:33:38 +0000 (13:33 -0800)]
Refactor server capability code into base Handler.

UploadPackHandler and ReceivePackHandler now both handle client
capabilities using a consistent interface, the set_client_capabilites
and has_capability functions. Both now error as soon as an unknown
capability is requested by the client.

Also renames the following methods:
  capabilities -> capability_line
  default_capabilities -> capabilities
This is because capability_line is the less general of the two
methods, as it is only useful when advertising capabilities to the
client.

Changed capabilities tests to use the base class and test new
functionality.

Change-Id: If7d3feeac27834119d6d4e4021569401e5444d51

11 years agoRemove unnecessary TODO in server.py.
Dave Borowitz [Sat, 20 Feb 2010 01:35:38 +0000 (17:35 -0800)]
Remove unnecessary TODO in server.py.

Refnames are checked by RefsContainer.__getitem__, which raises
KeyError if they are invalid, so we don't need to check within
apply_pack.

Change-Id: I3decc98341b7df092e7e4dfd72c1f2f3b6633992

11 years agoExtract all-zero SHA as a constant in protocol.py
Dave Borowitz [Sat, 20 Feb 2010 00:19:47 +0000 (16:19 -0800)]
Extract all-zero SHA as a constant in protocol.py

Change-Id: Ie8305773ba034ae9c35c6503573fe56de5c24064

11 years agoFix ReceivePackHandler to disallow deleting refs without delete-refs.
Dave Borowitz [Sat, 20 Feb 2010 00:13:45 +0000 (16:13 -0800)]
Fix ReceivePackHandler to disallow deleting refs without delete-refs.

Change-Id: I832c137f110f8e4b50f067f66e21333492871988

11 years agoAllow server handlers to specify capabilities required by clients.
Dave Borowitz [Fri, 19 Feb 2010 23:50:08 +0000 (15:50 -0800)]
Allow server handlers to specify capabilities required by clients.

Ideally, the server should be able to handle the absence (as well as
presence) of any capabilities it advertises. However, currently, the
server does not know how to *not* support some capabilities, such
as side-band-64k and delete-refs, which makes it incompatible with
clients that do not request these capabilities. This change adds a
set of "required" capabilites to the server handlers, and causes the
server to fail fast if the client does not request them.

Capabilities should be removed from the required capabilities lists as
their inverses are implemented.

Note that the protocol capabilities spec[1] makes no requirements
about servers supporting the inverse of capabilities.

[1] http://repo.or.cz/w/git.git/blob/HEAD:/Documentation/technical/protocol-capabilities.txt

Change-Id: I6ad2dc3dba67b78b2e195ec0b77eace09a36b0f5

11 years agoRefactor server capability code into base Handler.
Dave Borowitz [Fri, 19 Feb 2010 21:33:38 +0000 (13:33 -0800)]
Refactor server capability code into base Handler.

UploadPackHandler and ReceivePackHandler now both handle client
capabilities using a consistent interface, the set_client_capabilites
and has_capability functions. Both now error as soon as an unknown
capability is requested by the client.

Also renames the following methods:
  capabilities -> capability_line
  default_capabilities -> capabilities
This is because capability_line is the less general of the two
methods, as it is only useful when advertising capabilities to the
client.

Changed capabilities tests to use the base class and test new
functionality.

Change-Id: If7d3feeac27834119d6d4e4021569401e5444d51

11 years agoAdd get_peeled to BaseRepo so HTTP and git servers use one call to peel tags.
Dave Borowitz [Mon, 1 Mar 2010 17:48:41 +0000 (09:48 -0800)]
Add get_peeled to BaseRepo so HTTP and git servers use one call to peel tags.

This method needs to go in BaseRepo rather than ObjectStore so it can take
advantage of the cached peeled values in the packed-refs file, which belongs
to the RefsContainer. To this end, added a similar get_peeled method to
RefsContainer that accesses the peeled ref cache. Unlike BaseRepo.get_peeled,
RefsContainer.get_peeled returns None if peeled ref information is not cached
(since it does not have access to an ObjectStore to do the peeling itself).

Modified the TCP git server and dumb HTTP server to advertise peeled refs
consistently and correctly. Added tests for all new functionality.

Change-Id: I214ffee1a3459a746a7e34a1d04c0f527c5c8347

11 years agoAdd cgit compatibility testing framework.
Dave Borowitz [Fri, 12 Feb 2010 00:01:33 +0000 (16:01 -0800)]
Add cgit compatibility testing framework.

This adds a suite of tests that require git-core to be installed and can be run
with "make check-compat". These tests can run cgit via subprocess and capture
the results. This is primarily used to test the git and HTTP protocol servers
against their cgit counterparts, but other tests are possible as well. Also
included a test that packs written by dulwich are verified by git verify-pack.

The servers are tested by running the server in a separate thread and spawning a
git process that talks to them, then ensuring that the correct operations were
applied to each repo.

Also fixed/added in the course of testing:
-Fixed a bad merge in server.py
-Fixed some global namespace bugs in web.py
-Refresh the object store pack cache if the pack directory is modified.
-Added a 'dumb' flag to HTTPGitApplication so the HTTP server can be run in
dumb-only mode. This allows testing the dumb server against a smart cgit client
(which has no option to turn off smart HTTP).

There are still several outstanding bugs that cause tests to fail. The relevant
tests are currently skipped and marked with TODO.

Change-Id: I2b4fd0af6e59d03815ca663268441e5696883763

11 years agorelease 0.5.0. dulwich-0.5.0
Jelmer Vernooij [Wed, 3 Mar 2010 15:33:05 +0000 (16:33 +0100)]
release 0.5.0.

11 years agoUse ConfigParser for now
Jelmer Vernooij [Wed, 3 Mar 2010 01:30:39 +0000 (02:30 +0100)]
Use ConfigParser for now

ConfigParser is included in Python's standard library and ConfigObj doesn't generate git-compatible files anyway.

We'll need a custom parser at some point.

.

11 years agoFix memory leaks in error paths.
Jelmer Vernooij [Sun, 28 Feb 2010 17:46:33 +0000 (18:46 +0100)]
Fix memory leaks in error paths.

11 years agoChange license of dul-web to GPLv2 or later, consistent with the rest of Dulwich...
Jelmer Vernooij [Mon, 1 Mar 2010 19:24:35 +0000 (20:24 +0100)]
Change license of dul-web to GPLv2 or later, consistent with the rest of Dulwich. Thanks to Dave for licensing this as GPLv2+.

11 years agoAdd --pure option to setup.py.
Jelmer Vernooij [Sat, 27 Feb 2010 16:16:29 +0000 (17:16 +0100)]
Add --pure option to setup.py.

11 years agoAdd --pure option to setup.py.
anatoly techtonik [Sat, 27 Feb 2010 15:59:14 +0000 (16:59 +0100)]
Add --pure option to setup.py.

11 years ago * Cope with forward slashes correctly in the index on Windows.
Jelmer Vernooij [Sat, 27 Feb 2010 15:38:30 +0000 (16:38 +0100)]
  * Cope with forward slashes correctly in the index on Windows.
    (Jelmer Vernooij, #526793)

11 years agoChange license to GPLv2 or later rather than just GPLv2 - verified with John.
Jelmer Vernooij [Fri, 26 Feb 2010 15:28:23 +0000 (16:28 +0100)]
Change license to GPLv2 or later rather than just GPLv2 - verified with John.

11 years agorepo: drop nonstandard ConfigObj dependency
Augie Fackler [Wed, 24 Feb 2010 21:11:22 +0000 (15:11 -0600)]
repo: drop nonstandard ConfigObj dependency

11 years agoFix read for ref deltas.
Jelmer Vernooij [Wed, 24 Feb 2010 06:57:32 +0000 (07:57 +0100)]
Fix read for ref deltas.

11 years agoReturn unused data
Jelmer Vernooij [Mon, 15 Feb 2010 01:32:12 +0000 (02:32 +0100)]
Return unused data

11 years agoRemove one-line function, only used in one place.
Jelmer Vernooij [Fri, 12 Feb 2010 20:52:15 +0000 (21:52 +0100)]
Remove one-line function, only used in one place.

11 years agoRemove put_named_file from public API
Jelmer Vernooij [Fri, 12 Feb 2010 20:17:42 +0000 (21:17 +0100)]
Remove put_named_file from public API

11 years agoFix PackData._get_size().
Jelmer Vernooij [Fri, 12 Feb 2010 13:53:49 +0000 (14:53 +0100)]
Fix PackData._get_size().

11 years agoDelay checking size until it's actually used.
Jelmer Vernooij [Fri, 12 Feb 2010 13:47:50 +0000 (14:47 +0100)]
Delay checking size until it's actually used.

11 years agoAdd convenience function for parsing info/refs file.
Jelmer Vernooij [Fri, 12 Feb 2010 13:14:47 +0000 (14:14 +0100)]
Add convenience function for parsing info/refs file.

11 years agoExtend DictRefsContainer.
Jelmer Vernooij [Fri, 12 Feb 2010 12:58:21 +0000 (13:58 +0100)]
Extend DictRefsContainer.

11 years agoMark current version as 0.5.0
Jelmer Vernooij [Fri, 12 Feb 2010 12:42:11 +0000 (13:42 +0100)]
Mark current version as 0.5.0

11 years agomerge support for use with in-memory packs.
Jelmer Vernooij [Fri, 12 Feb 2010 02:59:06 +0000 (03:59 +0100)]
merge support for use with in-memory packs.

11 years agouse fstat if possible.
Jelmer Vernooij [Fri, 12 Feb 2010 02:36:16 +0000 (03:36 +0100)]
use fstat if possible.

11 years agoAllow opening pack objects from memory.
Jelmer Vernooij [Fri, 12 Feb 2010 02:30:30 +0000 (03:30 +0100)]
Allow opening pack objects from memory.

11 years agoOnly use mmap for index files.
Jelmer Vernooij [Fri, 12 Feb 2010 01:29:48 +0000 (02:29 +0100)]
Only use mmap for index files.

11 years agoAvoid using mmap when unnecessary.
Jelmer Vernooij [Fri, 12 Feb 2010 01:09:03 +0000 (02:09 +0100)]
Avoid using mmap when unnecessary.

11 years agoUse simple read function.
Jelmer Vernooij [Fri, 12 Feb 2010 01:06:07 +0000 (02:06 +0100)]
Use simple read function.

11 years agoRemove unused argument to simple_mmap.
Jelmer Vernooij [Fri, 12 Feb 2010 00:56:09 +0000 (01:56 +0100)]
Remove unused argument to simple_mmap.

11 years agoFix issue creating new repositories, with trivial smoke test.
Jelmer Vernooij [Fri, 12 Feb 2010 00:24:46 +0000 (01:24 +0100)]
Fix issue creating new repositories, with trivial smoke test.

11 years agoRemove pointless assertion - we'll get an exception in any case if the pack doesn...
Jelmer Vernooij [Fri, 12 Feb 2010 00:10:20 +0000 (01:10 +0100)]
Remove pointless assertion - we'll get an exception in any case if the pack doesn't exist.

11 years agoMove some functions back from DiskRefsContainer to RefsContainer.
Jelmer Vernooij [Fri, 12 Feb 2010 00:05:34 +0000 (01:05 +0100)]
Move some functions back from DiskRefsContainer to RefsContainer.

11 years agoAsk for forgiveness, not permission.
Jelmer Vernooij [Thu, 11 Feb 2010 23:34:09 +0000 (00:34 +0100)]
Ask for forgiveness, not permission.

11 years agoAsk for forgiveness, not permission.
Jelmer Vernooij [Thu, 11 Feb 2010 23:31:55 +0000 (00:31 +0100)]
Ask for forgiveness, not permission.

11 years agoAdd extra base class for DiskObjectStore.
Jelmer Vernooij [Thu, 11 Feb 2010 23:29:25 +0000 (00:29 +0100)]
Add extra base class for DiskObjectStore.

11 years agoRemove unnecessary indirection.
Jelmer Vernooij [Thu, 11 Feb 2010 22:59:07 +0000 (23:59 +0100)]
Remove unnecessary indirection.

11 years agoMake base directories variable global.
Jelmer Vernooij [Thu, 11 Feb 2010 21:50:07 +0000 (22:50 +0100)]
Make base directories variable global.

11 years agoMove do_commit() and has_index() from Repo to BaseRepo.
Jelmer Vernooij [Thu, 11 Feb 2010 21:42:46 +0000 (22:42 +0100)]
Move do_commit() and has_index() from Repo to BaseRepo.

11 years agoAdd BaseRepo.put_named_file.
Jelmer Vernooij [Thu, 11 Feb 2010 21:31:58 +0000 (22:31 +0100)]
Add BaseRepo.put_named_file.

11 years agomerge improvements from Dave to the server, file locking and repository abstraction.
Jelmer Vernooij [Thu, 11 Feb 2010 20:51:24 +0000 (21:51 +0100)]
merge improvements from Dave to the server, file locking and repository abstraction.

11 years agoAdd tests for HTTP server.
Dave Borowitz [Mon, 8 Feb 2010 23:19:19 +0000 (15:19 -0800)]
Add tests for HTTP server.

These are unittests for the functionality in web.py, not end-to-end integration
tests. Fixed two bugs where the smart HTTP handlers wouldn't correctly forbid
unknown RPC services. Refactored for testing by injecting a dict of services
into smart HTTP handlers and rewriting tag-peeling code to not depend on objects
having a particular type.

Change-Id: I42a0ed89781687a655b5803103eb21c1b62cee83

11 years agoFix flaky/failing tests introduced in the last few changes.
Dave Borowitz [Tue, 2 Feb 2010 20:38:04 +0000 (12:38 -0800)]
Fix flaky/failing tests introduced in the last few changes.

Change-Id: Ie87a60d970638c4682970a9b4f47d8240de49532

11 years agoAdd smart HTTP support to dul-web.
Dave Borowitz [Mon, 1 Feb 2010 22:43:27 +0000 (14:43 -0800)]
Add smart HTTP support to dul-web.

Change-Id: I6ddfe213707f9ccb2d377ac9813856b1f4fe90dc

11 years agoWorking pass at an HTTP server, only dumb at the moment
Dave Borowitz [Thu, 28 Jan 2010 20:47:51 +0000 (12:47 -0800)]
Working pass at an HTTP server, only dumb at the moment

Change-Id: I92c883b2274252ad83bc044f87fc8608b006b6ab

11 years agoImprove ref handling.
Dave Borowitz [Thu, 28 Jan 2010 20:42:16 +0000 (12:42 -0800)]
Improve ref handling.

DiskRefsConatiner now handles packed-refs transparently, and
understands both the peeled and unpeeled packed-refs formats
correctly. Ref cycles are handled by giving up after reaching an
arbitrary recurion depth.

Includes tests for all new functionality.

Change-Id: I742117d7a2b99cbb52ee2a9d3a625037844c55b6

11 years agoImprove server protocol error handling; fix flush-pkt handling.
Dave Borowitz [Tue, 26 Jan 2010 17:51:29 +0000 (09:51 -0800)]
Improve server protocol error handling; fix flush-pkt handling.

Change-Id: Ib3631cd3167071f555113f62d80bc63bf02acdad

11 years agoWork towards making Dulwich less dependent on the filesystem.
Dave Borowitz [Thu, 21 Jan 2010 02:03:44 +0000 (18:03 -0800)]
Work towards making Dulwich less dependent on the filesystem.

This change is mostly refactoring, and accomplishes the following:
 * Create an abstract base class for Repo that does not need to point
   to a repo on disk.
 * Move some methods in DiskRefsContainer dealing with packs to the
   base class. Packs are such a fundamental tool for optimization in
   git that they should be used by non-disk-backed implementations.
 * Change GitBackend to take in a repo rather than a directory as an
   argument.

Change-Id: Ib2f12855b34c60de48d2b777fbca32f9c2317c8c

11 years agoDon't magically delete lockfiles on IOError/OSError.
Dave Borowitz [Fri, 22 Jan 2010 23:44:34 +0000 (15:44 -0800)]
Don't magically delete lockfiles on IOError/OSError.

The docstring already says the only way to guarantee that lockfiles
will be deleted is close them in a finally block, so the extra magic
is redundant.

11 years agoClarify GitFile docstrings and disallow r+w modes.
Dave Borowitz [Thu, 21 Jan 2010 23:00:30 +0000 (15:00 -0800)]
Clarify GitFile docstrings and disallow r+w modes.

Change-Id: I9a23ede0d7a3c93b0eb6c55aebf487a34d7cf875

11 years agoAdd a GitFile class that uses the same locking protocol for writes as git.
Dave Borowitz [Tue, 19 Jan 2010 22:58:14 +0000 (14:58 -0800)]
Add a GitFile class that uses the same locking protocol for writes as git.

Change-Id: Id9c6f8b5880a73e0e714cbc61e954d0ecae6103a

11 years agoRework server protocol to be smarter and interoperate with cgit client.
Dave Borowitz [Wed, 20 Jan 2010 18:59:34 +0000 (10:59 -0800)]
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

11 years agoImplement Repo.get_config().
Jelmer Vernooij [Mon, 8 Feb 2010 14:44:50 +0000 (15:44 +0100)]
Implement Repo.get_config().

11 years agoFix two tests with the same name.
Jelmer Vernooij [Mon, 8 Feb 2010 14:43:37 +0000 (15:43 +0100)]
Fix two tests with the same name.

11 years agoDon't allow setting custom headers, per the discussion on the git list.
Jelmer Vernooij [Sun, 7 Feb 2010 14:55:23 +0000 (15:55 +0100)]
Don't allow setting custom headers, per the discussion on the git list.

11 years agoAdd --without-speedups option.
Jelmer Vernooij [Mon, 25 Jan 2010 09:10:07 +0000 (10:10 +0100)]
Add --without-speedups option.

11 years agoSupport extension build fails.
Hal Wine [Mon, 25 Jan 2010 08:59:14 +0000 (09:59 +0100)]
Support extension build fails.

Dulwich is pure python, with optional C implementation of some routines
for performance.

On systems which can not build the extensions, they default back to the
pure python implementations.

The builder can specify pure python by adding the flag
'--without-speedups' to the invocation of setup.py.

11 years agoSupport custom fields in commits.
Jelmer Vernooij [Thu, 21 Jan 2010 01:11:41 +0000 (14:11 +1300)]
Support custom fields in commits.

11 years agoAdd basic test for parsing commit objects.
Jelmer Vernooij [Thu, 21 Jan 2010 00:56:19 +0000 (13:56 +1300)]
Add basic test for parsing commit objects.

11 years agoFix fetch() without determine_wants argument.
Jelmer Vernooij [Sat, 16 Jan 2010 04:11:59 +0000 (17:11 +1300)]
Fix fetch() without determine_wants argument.

11 years agoRelease 0.4.1. dulwich-0.4.1
Jelmer Vernooij [Sun, 3 Jan 2010 15:11:46 +0000 (16:11 +0100)]
Release 0.4.1.

11 years agoMerge faster pure-Python Tree parser.
Jelmer Vernooij [Mon, 7 Dec 2009 13:51:49 +0000 (14:51 +0100)]
Merge faster pure-Python Tree parser.