jelmer/dulwich-libgit2.git
9 years agoMerge fix to write info/exclude rather than info/excludes file.
Jelmer Vernooij [Mon, 26 Apr 2010 23:41:15 +0000 (01:41 +0200)]
Merge fix to write info/exclude rather than info/excludes file.

9 years agoFixed filename of initial .git/info/exclude
Travis Cline [Mon, 26 Apr 2010 22:36:41 +0000 (17:36 -0500)]
Fixed filename of initial .git/info/exclude

9 years agoAdd PackStreamReader.{offset,__len__}, extract PackObjectIterator.
Jelmer Vernooij [Sat, 17 Apr 2010 22:54:25 +0000 (00:54 +0200)]
Add PackStreamReader.{offset,__len__}, extract PackObjectIterator.

9 years agoMove PackStreamReader to dulwich.pack.
Jelmer Vernooij [Sat, 17 Apr 2010 22:40:37 +0000 (00:40 +0200)]
Move PackStreamReader to dulwich.pack.

9 years agoSplit generic pack reading code out of PackStreamVerifier.
Jelmer Vernooij [Sat, 17 Apr 2010 22:35:48 +0000 (00:35 +0200)]
Split generic pack reading code out of PackStreamVerifier.

9 years agoFix ordering of imports.
Jelmer Vernooij [Sat, 17 Apr 2010 22:12:41 +0000 (00:12 +0200)]
Fix ordering of imports.

9 years agoRemove unused imports.
Jelmer Vernooij [Sat, 17 Apr 2010 22:09:23 +0000 (00:09 +0200)]
Remove unused imports.

9 years agoAttempt to close index files properly.
Jelmer Vernooij [Fri, 16 Apr 2010 23:46:20 +0000 (01:46 +0200)]
Attempt to close index files properly.

9 years agoMerge various pack improvements from Dave.
Jelmer Vernooij [Fri, 16 Apr 2010 19:49:17 +0000 (21:49 +0200)]
Merge various pack improvements from Dave.

9 years agoClean up pack.py.
Dave Borowitz [Mon, 15 Mar 2010 19:19:19 +0000 (12:19 -0700)]
Clean up pack.py.

-Removed trailing whitespace.
-Fixed long lines.
-Various docstring cleanup.

Change-Id: I2ccde03bc56d0f69ba2e3be7e11b3effce2d30ed

9 years agoMake the server decode a pack as it streams.
Dave Borowitz [Thu, 11 Mar 2010 22:12:18 +0000 (14:12 -0800)]
Make the server decode a pack as it streams.

This, in combination with using recv() instead of read(), makes it so we
never do blocking reads past the end of the pack stream, even when the
client doesn't close the connection.

This is done via a PackStreamVerifier class that reads from a Protocol,
unpacks and counts objects, writes through to a file, and computes the
SHA-1 checksum on the fly. It is necessary because the only way we know
when the pack is supposed to end is by parsing the header and reading
the correct number of objects; otherwise, any further reads from the
client would hang.

Changed the Handler constructors to take a Protocol instead of taking
read and write callbacks separately. Modified some interfaces to utility
functions in pack.py so they can be used by the server-side code.

Change-Id: Id4d11e34658d1f00ad06e45330d0d128b367d8e5

9 years agoFix read_zlib_chunks to avoid appending junk data.
Dave Borowitz [Thu, 11 Mar 2010 22:10:17 +0000 (14:10 -0800)]
Fix read_zlib_chunks to avoid appending junk data.

Adding junk data to the end of data fed to the zlib.decompressobj
creates the potential for zlib errors if a read doesn't fill the entire
buffer. This implementation is cleaner, and only requires the assumption
that there is some data in the read source after the zlib stream. Since
compressed streams in packfiles are always followed by either a new
packed object or the SHA-1 trailer, this assumption should be safe.

Added more robust tests for zlib reading with various buffer sizes.

Change-Id: I813d30997edf3e0c924eceac05675e0eb121b96c

9 years agoAdd ReceivableProtocol that supports recv() as well as read().
Dave Borowitz [Thu, 11 Mar 2010 17:59:08 +0000 (09:59 -0800)]
Add ReceivableProtocol that supports recv() as well as read().

There are two different ways of dealing with reads beyond the end of a
TCP stream buffer. The usual rfile.read method blocks until exactly the
number of bytes (or EOF) are read. This causes deadlocks when we try to
do buffered reads from the stream. When reading a packfile. the cgit
client leaves the connection open, so EOF is never read.

The other method is to use the socket.recv method, which blocks until
at least one byte is read, then returns whatever is available (up to
bufsize).

ReceivableProtocol supports both ways of dealing with reads past the
end of a stream, which should be used in different contexts. Note that
currently the ReceivePackHandler code still deadlocks, since it doesn't
know when to stop calling recv.

Change-Id: I77bfea72bb09326d9946f64426637296d0389714

9 years agoStrip excess whitespace from capabilities lines.
Dave Borowitz [Wed, 10 Mar 2010 20:36:51 +0000 (12:36 -0800)]
Strip excess whitespace from capabilities lines.

C git separates client capabilities during send-pack with both \0 and a
space, so we need to handle that as well. This change is significantly
more lenient, but the cgit behavior is not well-documented, so there may
be more corner cases. It's hard to imagine that the extra strip() will
actually result in capabilities lists being parsed incorrectly.

Change-Id: I74b734e146add683b4c1e4ea6b575f458ec25de7

9 years agoPrevent server stack trace when the client request is a no-op.
Dave Borowitz [Wed, 10 Mar 2010 18:56:35 +0000 (10:56 -0800)]
Prevent server stack trace when the client request is a no-op.

The exception was not killing the server, just the connection, and was
technically correct since the server is supposed to close the connection
anyway when the client sends no wants. As a result, the compat tests
weren't failing.

A better long-term solution would be to modify the server used during
testing to stop serving if one request generates an exception.

Change-Id: I065463803f38175a50f364b11588929094a28aab

9 years agofix bug #557585 GitFile breaks dulwich on Windows
anatoly techtonik [Thu, 15 Apr 2010 17:53:31 +0000 (19:53 +0200)]
fix bug #557585 GitFile breaks dulwich on Windows
fix is to add os.O_BINARY flag as os.open doesn't open files as binary
on this platform by default

9 years agoCope with diffstat not being present in test_patch.
Jelmer Vernooij [Thu, 15 Apr 2010 17:51:21 +0000 (19:51 +0200)]
Cope with diffstat not being present in test_patch.

9 years agoAdd basic test for write_commit_patch.
Jelmer Vernooij [Thu, 15 Apr 2010 17:01:08 +0000 (19:01 +0200)]
Add basic test for write_commit_patch.

9 years agoFix fastexport commit exporter, add test.
Jelmer Vernooij [Thu, 15 Apr 2010 15:37:28 +0000 (17:37 +0200)]
Fix fastexport commit exporter, add test.

9 years agoAdd some basic tests for fastexport.
Jelmer Vernooij [Thu, 15 Apr 2010 14:55:47 +0000 (16:55 +0200)]
Add some basic tests for fastexport.

9 years agoCorrectly avoid parsing ShaFiles with fixed SHAs when calling sha().
Dave Borowitz [Mon, 8 Mar 2010 18:47:05 +0000 (10:47 -0800)]
Correctly avoid parsing ShaFiles with fixed SHAs when calling sha().

This required some reworking of the _needs_* and _sha ivars. Improved
check() to force computing the SHA and verifying that it matches the
previously-set value. Added a test for this check.

Change-Id: I6782693d7d7708bc7c28f357c27419d51409b884

9 years agoInitial work on a fastexport module.
Jelmer Vernooij [Thu, 1 Apr 2010 00:34:02 +0000 (02:34 +0200)]
Initial work on a fastexport module.

9 years agoAvoid double close when file has already gone away in abort().
Jelmer Vernooij [Fri, 16 Apr 2010 17:59:52 +0000 (19:59 +0200)]
Avoid double close when file has already gone away in abort().

9 years agoSkip test_dest_opened on non-Windows platforms.
Jelmer Vernooij [Fri, 16 Apr 2010 17:49:09 +0000 (19:49 +0200)]
Skip test_dest_opened on non-Windows platforms.

9 years agofix bug #557585 GitFile breaks dulwich on Windows
anatoly techtonik [Fri, 16 Apr 2010 17:25:52 +0000 (19:25 +0200)]
fix bug #557585 GitFile breaks dulwich on Windows
fix non-atomic os.rename() behavior on Windows that fails if target exists
added file.fancy_rename() that preserves source file is case rename fails

9 years agoAvoid mixing iterators/readline.
Jelmer Vernooij [Fri, 16 Apr 2010 01:35:57 +0000 (03:35 +0200)]
Avoid mixing iterators/readline.

9 years agoadd git_am_patch_split.
Jelmer Vernooij [Fri, 16 Apr 2010 00:49:03 +0000 (02:49 +0200)]
add git_am_patch_split.

9 years agofix bug #557585 GitFile breaks dulwich on Windows
anatoly techtonik [Thu, 15 Apr 2010 17:53:31 +0000 (19:53 +0200)]
fix bug #557585 GitFile breaks dulwich on Windows
fix is to add os.O_BINARY flag as os.open doesn't open files as binary
on this platform by default

9 years agoCope with diffstat not being present in test_patch.
Jelmer Vernooij [Thu, 15 Apr 2010 17:51:21 +0000 (19:51 +0200)]
Cope with diffstat not being present in test_patch.

9 years agoAdd basic test for write_commit_patch.
Jelmer Vernooij [Thu, 15 Apr 2010 17:01:08 +0000 (19:01 +0200)]
Add basic test for write_commit_patch.

9 years agomerge support for generating fastexport streams.
Jelmer Vernooij [Thu, 15 Apr 2010 16:13:25 +0000 (18:13 +0200)]
merge support for generating fastexport streams.

9 years agoFix fastexport commit exporter, add test.
Jelmer Vernooij [Thu, 15 Apr 2010 15:37:28 +0000 (17:37 +0200)]
Fix fastexport commit exporter, add test.

9 years agoAdd some basic tests for fastexport.
Jelmer Vernooij [Thu, 15 Apr 2010 14:55:47 +0000 (16:55 +0200)]
Add some basic tests for fastexport.

9 years agoMerge trunk.
Jelmer Vernooij [Thu, 15 Apr 2010 14:09:30 +0000 (16:09 +0200)]
Merge trunk.

9 years agoCorrectly avoid parsing ShaFiles with fixed SHAs when calling sha().
Dave Borowitz [Mon, 8 Mar 2010 18:47:05 +0000 (10:47 -0800)]
Correctly avoid parsing ShaFiles with fixed SHAs when calling sha().

This required some reworking of the _needs_* and _sha ivars. Improved
check() to force computing the SHA and verifying that it matches the
previously-set value. Added a test for this check.

Change-Id: I6782693d7d7708bc7c28f357c27419d51409b884

9 years agoFix Blob._deserialize.
Jelmer Vernooij [Wed, 14 Apr 2010 22:36:46 +0000 (00:36 +0200)]
Fix Blob._deserialize.

9 years agoMake ShaFiles created from files trust their filenames.
Dave Borowitz [Thu, 4 Mar 2010 23:37:24 +0000 (15:37 -0800)]
Make ShaFiles created from files trust their filenames.

This adds a dummy FixedSha class that implements the read-only part
of hashlib's hash interface but does not actually compute a SHA-1
digest. This allows us to assign ids to file objects based on their
filename rather than requiring a read of the whole file; SHA-1s will
soon be checked during check().

Added a filename_to_sha helper function to objects.py; refactored the
opposite sha_to_filename functionality into this file as well for
parallelism and testing. As a side effect, reorganized some files in
tests/data to have the normal 2/38 filename structure.

Change-Id: Ic459628aec32a92e29ea49cfd6cbe685053971ef

9 years agoLazily read the contents of ShaFiles from disk.
Dave Borowitz [Thu, 4 Mar 2010 20:39:40 +0000 (12:39 -0800)]
Lazily read the contents of ShaFiles from disk.

Previously, ShaFile.from_file read and inflated the entire contents of a
ShaFile, storing the inflated text in memory. Parsing that text was done
lazily, but this resulted in a confusing performance profile, since the
"lazy" part was in fact faster (memory/CPU-bound) than the eager part
(I/O-bound).

This change ensures that a file is only read fully from disk right
before it is about to be parsed. The first few bytes are still read
from disk to get the file type, but there is no need to slurp the
whole file. Moreover, we now maintain a distinction between ShaFiles
that are initialized from (possibly raw) strings and files initialized
with filenames. In order to parse the contents of a file, we need to
have one or the other. There is a third category of ShaFiles that
should never be parsed, where all the properties are intended to be set
explicitly (usually (but not always) during testing). These objects are
created as usual via __init__.

The tests all pass, but we do not currently have a way of testing the
point at which the implementation reads the whole file from disk.

Also, note that a call to foo.id still results in reading the whole file
and calculating its SHA-1; this behavior may change in the future.

Change-Id: Ib9f67ead0d2a812a2e43cffa54c37a1c4a219841

9 years agoCheck tag and commit objects for duplicate and out-of-order headers.
Dave Borowitz [Sat, 27 Feb 2010 19:29:44 +0000 (11:29 -0800)]
Check tag and commit objects for duplicate and out-of-order headers.

This requires factoring out the commit/tag parsing code so it can be
used directly from both the _parse_text and check methods. The parse
methods yield tuples, which can either be used to set members or
check for ordering.

Change-Id: I5ffe47100273912eaa283d03332286287b109a13

9 years agoAdd TESTFLAGS variable to Makefile to make running nosetests easier.
Dave Borowitz [Fri, 5 Mar 2010 21:16:09 +0000 (13:16 -0800)]
Add TESTFLAGS variable to Makefile to make running nosetests easier.

Change-Id: I7d94577883ad0805281bcac0003df964bfd05cdc

9 years agoAdd launchpad link.
Jelmer Vernooij [Tue, 13 Apr 2010 23:22:43 +0000 (01:22 +0200)]
Add launchpad link.

9 years agoFix whitespace bug in dul-web.
Dave Borowitz [Mon, 12 Apr 2010 22:09:09 +0000 (00:09 +0200)]
Fix whitespace bug in dul-web.

Had a tab that was syntactically correct, but since python treats tabs
as 8 spaces rather than 4 it resulted in incorrect behavior.

9 years agoMerge pack protocol receiver fix.
Jelmer Vernooij [Sun, 11 Apr 2010 01:01:04 +0000 (03:01 +0200)]
Merge pack protocol receiver fix.

9 years agoAdd DiskObjectStore.init.
Jelmer Vernooij [Sun, 11 Apr 2010 00:43:17 +0000 (02:43 +0200)]
Add DiskObjectStore.init.

9 years agotest_object_store: use temp dirs instead of 'foo'
Tay Ray Chuan [Sun, 11 Apr 2010 00:29:21 +0000 (02:29 +0200)]
test_object_store: use temp dirs instead of 'foo'

9 years agoclient: don't assume server response is of length 20 rc-fix-pack-protocol-v2
Tay Ray Chuan [Sun, 4 Apr 2010 14:58:31 +0000 (22:58 +0800)]
client: don't assume server response is of length 20

We do not for sure the length; it is safer to use
Protocol.read_pkt_line().

Also, handle HangupException if read_pkt_line() raises it. This happens
when talking to old versions of git-daemon (v1.6.6.1-26-g38a81b4), where
there won't be anything to read.

9 years agoObjectStoreGraphWalker.ack: use non-recursive implementation
Tay Ray Chuan [Fri, 9 Apr 2010 23:36:28 +0000 (01:36 +0200)]
ObjectStoreGraphWalker.ack: use non-recursive implementation

We were recursively removing from self.heads; rewrite this such we try
removing heads this in a loop.

This gives a nice performance boost.

9 years agoUse datetime.utcfromtimestamp() in tests.
Dave Borowitz [Fri, 9 Apr 2010 22:39:12 +0000 (00:39 +0200)]
Use datetime.utcfromtimestamp() in tests.

datetime.fromtimestamp() has the confusing behavior of treating the
timestamp as a UTC time and then converting to local time, but not
setting the tzinfo member. As a result, the function returns different
values depending on the local timezone, which makes it hard to write a
test that passes everywhere.

The output of datetime.utcfromtimestamp() is stable across all
timezones, which is all we really need for tests. (Returning sensible
datetime objects from the Commit/Tag API would require substantially
more work, but that is not fixed in this change.)

Tested in both US-Pacific and US-Eastern.

9 years agoPreserve '-' sign when -0000 is stored for the timezone in a commit/tag.
Jelmer Vernooij [Thu, 8 Apr 2010 22:29:32 +0000 (00:29 +0200)]
Preserve '-' sign when -0000 is stored for the timezone in a commit/tag.

9 years agoAdd Tree.__iter__.
Jelmer Vernooij [Thu, 8 Apr 2010 20:01:45 +0000 (22:01 +0200)]
Add Tree.__iter__.

9 years agoCope with \r in ref files on Windows.
Jelmer Vernooij [Wed, 7 Apr 2010 11:01:22 +0000 (13:01 +0200)]
Cope with \r in ref files on Windows.

9 years agoAvoid relying on PST for passing the testsuite.
Jelmer Vernooij [Thu, 8 Apr 2010 01:22:09 +0000 (03:22 +0200)]
Avoid relying on PST for passing the testsuite.

9 years agoEnsure we don't run past the end of the tree text.
Dave Borowitz [Thu, 8 Apr 2010 01:05:05 +0000 (03:05 +0200)]
Ensure we don't run past the end of the tree text.

We use strnlen so we can find namelen even if the buffer is truncated
in the name. This is not necessary for Python string objects, which are
guaranteed to be null-terminated, but some buffer objects (e.g. mmap)
may not be.

9 years agoRemove unused import, always ensure that objects is serialized before running check().
Jelmer Vernooij [Thu, 8 Apr 2010 01:02:15 +0000 (03:02 +0200)]
Remove unused import, always ensure that objects is serialized before running check().

9 years agoAdd check() methods to object classes for consistency checking.
Dave Borowitz [Thu, 8 Apr 2010 00:55:09 +0000 (02:55 +0200)]
Add check() methods to object classes for consistency checking.

These roughly mirror the parts of git fsck that deal with object
well-formedness, including checking the presence of required headers,
formatting of author/committer names, tree ordering, and so on. This
change does *not* include consistency checks that require touching other
objects; those will go in ObjectStore.

Note that currently many types of errors will still be raised during
object parsing proper, such as ValueErrors when trying to parse invalid
integers. In the check() method, any such exceptions are caught and
wrapped in an ObjectFormatException. The separate codepath also gives
us a place to put these checks if we decide to optimize them out of the
main object-parsing codepath.

9 years agoRename set_ref -> set_symbolic_ref.
Jelmer Vernooij [Mon, 5 Apr 2010 22:57:43 +0000 (00:57 +0200)]
Rename set_ref -> set_symbolic_ref.

9 years agoAvoid writing to stdout.
Jelmer Vernooij [Mon, 5 Apr 2010 22:29:30 +0000 (00:29 +0200)]
Avoid writing to stdout.

9 years agoFix import of NotTagError.
Jelmer Vernooij [Mon, 5 Apr 2010 19:59:47 +0000 (21:59 +0200)]
Fix import of NotTagError.

9 years agoDefine common TestSkipped exception so it's easier to swap out later for
Jelmer Vernooij [Mon, 5 Apr 2010 19:52:49 +0000 (21:52 +0200)]
Define common TestSkipped exception so it's easier to swap out later for
something nose-specific.

9 years agoChange parse_tree to return a list rather than a dict.
Dave Borowitz [Mon, 5 Apr 2010 19:48:27 +0000 (21:48 +0200)]
Change parse_tree to return a list rather than a dict.

For future consistency checks, we will need to ensure that objects in
the tree are stored in sorted order when we parse the tree, so it makes
sense to be able to reuse parse_tree for this purpose.

Also added tests for both the C and Python versions of parse_tree. To
do this in one test run, we also need to hold onto the pure-python
implementation before importing the C version if available.

9 years agocgi.parse_qs is deprecated in favor of urlparse.parse_qs in python 2.6,
Dave Borowitz [Mon, 5 Apr 2010 19:37:17 +0000 (21:37 +0200)]
cgi.parse_qs is deprecated in favor of urlparse.parse_qs in python 2.6,
but the function in urlparse doesn't exist in earlier versions.

9 years agoFix imports.
Jelmer Vernooij [Mon, 5 Apr 2010 19:29:02 +0000 (21:29 +0200)]
Fix imports.

9 years agoMerge Dave's fixes for the compatibility tests and web.
Jelmer Vernooij [Sat, 3 Apr 2010 18:26:51 +0000 (20:26 +0200)]
Merge Dave's fixes for the compatibility tests and web.

9 years agoUpdate servers and compat tests to work with DictBackends.
Dave Borowitz [Sat, 3 Apr 2010 18:18:12 +0000 (20:18 +0200)]
Update servers and compat tests to work with DictBackends.

9 years agoAvoid seek when loading pack index files.
Jelmer Vernooij [Sat, 3 Apr 2010 16:37:50 +0000 (18:37 +0200)]
Avoid seek when loading pack index files.

9 years agoSimplify apply_pack call.
Jelmer Vernooij [Sat, 3 Apr 2010 16:25:04 +0000 (18:25 +0200)]
Simplify apply_pack call.

9 years agoRemove GitBackendRepo, use plain Repo's instead.
Jelmer Vernooij [Sat, 3 Apr 2010 15:49:44 +0000 (17:49 +0200)]
Remove GitBackendRepo, use plain Repo's instead.

9 years agoMove apply_pack to ReceivePackHandler, so a server backend repo is a strict subset...
Jelmer Vernooij [Sat, 3 Apr 2010 15:43:39 +0000 (17:43 +0200)]
Move apply_pack to ReceivePackHandler, so a server backend repo is a strict subset of Repo.

9 years agoUse property to access commit parents.
Jelmer Vernooij [Sat, 3 Apr 2010 15:39:50 +0000 (17:39 +0200)]
Use property to access commit parents.

9 years agoFix dul-daemon.
Jelmer Vernooij [Sat, 3 Apr 2010 01:36:31 +0000 (03:36 +0200)]
Fix dul-daemon.

9 years agoIf git is available on the local machine, always run the compatibility tests so I...
Jelmer Vernooij [Sat, 3 Apr 2010 00:43:57 +0000 (02:43 +0200)]
If git is available on the local machine, always run the compatibility tests so I don't break stuff again.

9 years agoFix use of git backend.
Jelmer Vernooij [Fri, 2 Apr 2010 23:58:56 +0000 (01:58 +0200)]
Fix use of git backend.

9 years agoSome trivial formatting fixes.
Jelmer Vernooij [Fri, 2 Apr 2010 23:46:59 +0000 (01:46 +0200)]
Some trivial formatting fixes.

9 years agomerge support for custom get_peeled function in server.
Jelmer Vernooij [Fri, 2 Apr 2010 19:30:13 +0000 (21:30 +0200)]
merge support for custom get_peeled function in server.

9 years agoimplement chunked version of ShaFile.as_legacy_object.
Jelmer Vernooij [Fri, 2 Apr 2010 14:07:33 +0000 (16:07 +0200)]
implement chunked version of ShaFile.as_legacy_object.

9 years agoUse open_repository to find repository for get_peeled.
Jelmer Vernooij [Fri, 2 Apr 2010 02:45:54 +0000 (04:45 +0200)]
Use open_repository to find repository for get_peeled.

9 years agoSupport progress argument to generate_pack_contents.
Jelmer Vernooij [Fri, 2 Apr 2010 02:15:07 +0000 (04:15 +0200)]
Support progress argument to generate_pack_contents.

9 years agoAdd RefsContainer.read_ref.
Jelmer Vernooij [Fri, 2 Apr 2010 01:57:11 +0000 (03:57 +0200)]
Add RefsContainer.read_ref.

9 years agoSupport opening git repositories by path.
Jelmer Vernooij [Fri, 2 Apr 2010 01:21:35 +0000 (03:21 +0200)]
Support opening git repositories by path.

9 years agoAlways require a Git repository object to be passed into
Jelmer Vernooij [Fri, 2 Apr 2010 00:55:38 +0000 (02:55 +0200)]
Always require a Git repository object to be passed into
dulwich.server.GitBackend.

9 years agoPreviously, the word "type" was massively overloaded in objects.py. It
Dave Borowitz [Fri, 2 Apr 2010 00:11:34 +0000 (02:11 +0200)]
Previously, the word "type" was massively overloaded in objects.py. It
could refer to the numeric type of an object (obj.type or
obj._num_type), the type name of the object (obj._type or FOO_ID), or
the actual class (python type) of the object. This could get quite
confusing.

This change does the following:
 -Replace obj._type and obj._num_type with type_name and type_num. (The
  type property is retained for client compatibility, but is marked as
  deprecated.) Change the various type maps and callers to use the
  object's public members as keys.
 -Add a convenience function object_class that takes either a string or
  an int and dispatches to the appropriate type map.
 -Rename the FOO_ID constants as _FOO_HEADER, since those constants
  were previously overloaded to mean both header field names and type
  names. There is some overlap, but this is intentional.
 -Use isinstance for type comparisons rather than type, which is common
  python practice and avoids the problematic word altogether.

9 years agoPreviously, serialize() expected the object type to be numeric, and
Dave Borowitz [Thu, 1 Apr 2010 23:58:27 +0000 (01:58 +0200)]
Previously, serialize() expected the object type to be numeric, and
_parse_text() set it to be an object class. Surprisingly, there were
no code paths that perform a round-trip parse-serialize-parse or
serialize-parse-serialize on tags; put a TODO in test_objects.py to add
such tests.

9 years agoPass command-line arguments on to command implementation.
Jelmer Vernooij [Thu, 1 Apr 2010 23:41:04 +0000 (01:41 +0200)]
Pass command-line arguments on to command implementation.

9 years agoFix import.
Jelmer Vernooij [Thu, 1 Apr 2010 23:33:32 +0000 (01:33 +0200)]
Fix import.

9 years agoUse posixpath where possible.
Jelmer Vernooij [Thu, 1 Apr 2010 17:07:25 +0000 (19:07 +0200)]
Use posixpath where possible.

9 years agoUse standard buffer size rather than object size.
Jelmer Vernooij [Thu, 1 Apr 2010 16:58:09 +0000 (18:58 +0200)]
Use standard buffer size rather than object size.

9 years agoInitial work on a fastexport module.
Jelmer Vernooij [Thu, 1 Apr 2010 00:34:02 +0000 (02:34 +0200)]
Initial work on a fastexport module.

9 years agoAllow delta's to be chunked as well.
Jelmer Vernooij [Wed, 31 Mar 2010 21:05:52 +0000 (23:05 +0200)]
Allow delta's to be chunked as well.

9 years agoAccept chunked contents for apply_delta base texts.
Jelmer Vernooij [Wed, 31 Mar 2010 19:45:10 +0000 (21:45 +0200)]
Accept chunked contents for apply_delta base texts.

9 years agoconsistently use chunks internally inside of the pack code.
Jelmer Vernooij [Wed, 31 Mar 2010 19:34:40 +0000 (21:34 +0200)]
consistently use chunks internally inside of the pack code.

9 years agoReturn chunks from apply_delta.
Jelmer Vernooij [Wed, 31 Mar 2010 19:21:45 +0000 (21:21 +0200)]
Return chunks from apply_delta.

9 years agoReturn chunks from unpack_object.
Jelmer Vernooij [Wed, 31 Mar 2010 19:14:41 +0000 (21:14 +0200)]
Return chunks from unpack_object.

9 years agoRemove read_zlib in favor of read_zlib_chunks.
Jelmer Vernooij [Wed, 31 Mar 2010 19:09:24 +0000 (21:09 +0200)]
Remove read_zlib in favor of read_zlib_chunks.

9 years agoWork with chunks internally in dulwich.objects.
Jelmer Vernooij [Wed, 31 Mar 2010 18:27:58 +0000 (20:27 +0200)]
Work with chunks internally in dulwich.objects.

9 years agoRename _parse_text to _deserialize for consistency.
Jelmer Vernooij [Wed, 31 Mar 2010 18:16:35 +0000 (20:16 +0200)]
Rename _parse_text to _deserialize for consistency.

9 years agoSet needs_serialization/needs_parsing properties only in a few places.
Jelmer Vernooij [Wed, 31 Mar 2010 18:15:42 +0000 (20:15 +0200)]
Set needs_serialization/needs_parsing properties only in a few places.

9 years agoUse raw_length in pack generation.
Jelmer Vernooij [Wed, 31 Mar 2010 18:11:03 +0000 (20:11 +0200)]
Use raw_length in pack generation.

9 years agoWork with chunks rather than StringIO internally when possible.
Jelmer Vernooij [Wed, 31 Mar 2010 18:06:40 +0000 (20:06 +0200)]
Work with chunks rather than StringIO internally when possible.

9 years agoMake ShaFile.serialize private (it's pointless to call for external users).
Jelmer Vernooij [Wed, 31 Mar 2010 18:00:54 +0000 (20:00 +0200)]
Make ShaFile.serialize private (it's pointless to call for external users).

9 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.