aboutsummaryrefslogtreecommitdiff
path: root/lib/git/objects
AgeCommit message (Collapse)Author
2010-11-15submodule: Fleshed out interface, and a partial test which is not yet ↵Sebastian Thiel
usable. It showed that the ConfigParser needs some work. If the root is set, it also needs to refer to the root_commit instead of to the root-tree, as it will have to decide whether it works on the working tree's version of the .gitmodules file or the one in the repository
2010-10-27Fixed bug that would cause the author's email to be a generic default one, ↵Sebastian Thiel
instead of the existing and valid. The rest of the ConfigParser handling is correct, as it reads all configuration files available to git see http://github.com/Byron/GitPython/issues#issue/1
2010-10-15Added unicode handling for author names. They will now be properly encoded ↵Sebastian Thiel
into the byte stream, as well as decoded from it
2010-08-13unicode handling in messages and trees was improved. Messages are now ↵Sebastian Thiel
written according to the encoding of the commit object, and decoded using that information as well. Trees will encode and decode their names with utf8
2010-07-16util.get_user_id(): Will try a windows environment variable as well, the ↵Sebastian Thiel
method now yields good results on all tested platforms
2010-07-15Unicode: tree_to_stream can now handle unicode names the way git would do ↵Sebastian Thiel
it. Its can be assumed though that there are more bugs related to unicode hanging around in the system
2010-07-07Adjusted previous object creators to use the rev_parse method directly. ↵Sebastian Thiel
rev_parse could be adjusted not to return Objects anymore, providing better performance for those who just want a sha only. On the other hand, the method is high-level and should be convenient to use as well, its a starting point for more usually, hence its unlikely to call it in tight loops
2010-07-06Initial version of the rev-parse routine, which doesn't work too bad, but ↵Sebastian Thiel
its still rather slow and many tests are not yet implemented
2010-07-02win32 compatability adjustmentsunknown
2010-06-29Removed blob.data property as there is no real reason for an exception to ↵Sebastian Thiel
the rule of trying not to cache possibly heavy data. The data_stream method should be used instead
2010-06-29Renamed modules utils to util, and errors to exc to be more conforming to ↵Sebastian Thiel
the submodules's naming conventions
2010-06-29Updated and fixed sphinx API docs, which included one quick skim-throughSebastian Thiel
2010-06-29Diff: fixed bug that caused a string to end up as a blob modeSebastian Thiel
2010-06-28All tests adjusted to work with the changed internal sha representationSebastian Thiel
2010-06-25Adjusted all files to (hopefully) deal with the fact that all objects now ↵Sebastian Thiel
use 20 byte sha's internally as it is closer to the GitDB implementation Switched all remaining files back to tabs Adjusted all remaining docstrings to suit the sphinx doc convention - its likely that there are many of docstring syntax errors though
2010-06-24GitCmdStreamReader: fixed terrible bug which only kicked in if the stream ↵Sebastian Thiel
was actually empty. This is a rare case that can happen during stream testing. Theoretically there shouldn't be any empty streams of course, but practically they do exist sometimes ;); fixed stream.seek implementation, which previously used seek on standard output Improved GitCmd error handling
2010-06-23fixed critical bug in traverse_trees_recursive, implemented IndexFile.new ↵Sebastian Thiel
including simple test, it may be simple as the methods it uses are throroughly tested
2010-06-22Initial frame for implementing read_tree using pure python. As git-read-tree ↵Sebastian Thiel
can do much more than we can ( and faster assumably ), the .new method is used to create new index instances from up to 3 trees. Implemented multi-tree traversal to facilitate building a stage list more efficiently ( although I am not sure whether it could be faster to use a dictionary together with some intensive lookup ), including test Added performance to learn how fast certain operations are, and whether one should be preferred over another
2010-06-22index.write_tree: initial version implemented, although its not yet working ↵Sebastian Thiel
correctly, a test to explicitly compare the git version with the python implementation is still missing Tree and Index internally use 20 byte shas, converting them only as needed to reduce memory footprint and processing time objects: started own 'fun' module containing the most important tree functions, more are likely to be added soon
2010-06-21index: Entries are now using flags internally, instead of reducing the flag ↵Sebastian Thiel
information to just the stage ( just to be closer to the git-original )
2010-06-14Moved small types that had their own module into the utils moduleSebastian Thiel
2010-06-14tree: added TreeModifier, allowing to adjust existing trees safely and or ↵Sebastian Thiel
fast, while staying compatible with serialization which requires it to be sorted
2010-06-14tree now uses less memory for its cache as it stores the bare deserialized ↵Sebastian Thiel
information - this also speeds up later serialization after changes. its clear though that retrieving actual objects is slower currently as these are not cached anymore. Its worth thinking about moving these encoding, decoding routines to gitdb
2010-06-14Implemented initial version of tree serialization which appears to work ↵Sebastian Thiel
according to a simple test ( presort still needs implementation ) submodule: added stub to allow the tree to return something, its not implemented though
2010-06-12Removed odb from project, it is now used as a submodule named gitdb, which ↵Sebastian Thiel
was added instead Adjusted all imports to deal with the changed package names
2010-06-04Fixed implementation after design change to deal with it - all tests run, ↵Sebastian Thiel
but next there will have to be more through testing
2010-06-04initial version of new odb design to facilitate a channel based ↵Sebastian Thiel
multi-threading implementation of all odb functions
2010-06-04db: implemented GitObjectDB using the git command to make sure we can lookup ↵Sebastian Thiel
everything. Next is to implement pack-file reading, then alternates which should allow to resolve everything
2010-06-03commit.create_from_tree now uses pure python implementation, fixed message ↵Sebastian Thiel
parsing which truncated newlines although it was ilegitimate. Its up to the reader to truncate therse, nowhere in the git code I could find anyone adding newlines to commits where it is written Added performance tests for serialization, it does about 5k commits per second if writing to tmpfs
2010-06-03odb: implemented loose object streaming, which is impossible to do ↵Sebastian Thiel
efficiently considering that it copies string buffers all the time
2010-06-02commit: redesigned revlist and commit parsing, commits are always retrieved ↵Sebastian Thiel
from their object information directly. This is faster, and resolves issues with the rev-list format and empty commit messages Adjusted many tests to go with the changes, as they were still mocked. The mock was removed if necessary and replaced by code that actually executes
2010-06-02commit: refactored existing code to decode commits from streams - ↵Sebastian Thiel
performance is slightly better git.cmd: added method to provide access to the content stream directly. This is more efficient if large objects are handled, if it is actually used test.helpers: removed unnecessary code
2010-06-02commit: initial version of commit_from_tree which could create commit ↵Sebastian Thiel
objects if it could serialize itself
2010-05-11IndexFile.add: Fixed incorrect path handling if path rewriting was desired ↵Sebastian Thiel
and absolute paths were given Commit.create_from_tree: fixed critical bug that would cause it to create a branch named master by default, instead of the reference actually set ( which is master in many, but not all cases ) - in fact it could be detached as well, we would fail ungracefully although we could assume master then ... although we cant really make the decision Repo.is_dirty: improved its abiility to deal with empty repositories and a missing head. Weird thing is that the test always worked fine with the previous code, but it didn't work for me in a similar situation without this change at least
2010-05-04TODO: Removed all entries but left a mesage about where to find the issuee ↵Sebastian Thiel
on lighthouse. README/intro.rst: added information about the new repository at github tree: added marker to indicate that submodules would have to be returned there
2010-04-27Add support for time zone information in tags and commits.Rick Copeland
This commit includes - an update to git.objects.utils:parse_actor_and_date to parse the timezone offset - updates to the git.objects.Commit and git.objects.Tag objects to support *_tz_offset attributes - updates to tests in test.git.test_commit and test.git.test_refs to check for appropriate *_tz_offset attributes
2010-03-04Converted all tabs to 4 space characters each to comply with pep8Sebastian Thiel
2010-02-28Commit.iter_items: Will not restrict comits to the ones containing changes ↵Sebastian Thiel
to paths anymore as it will only append '--' if paths are actually given. Added unittest to verify this
2010-02-24git.Tree: Fixed critical issue when reading trees from binary data. The ↵Sebastian Thiel
previous version was making assumptions that would only be true for old git repositories it sesms. The new version of the algorithm deals with this gracefully.
2010-02-13Commit.create: now handles empty repositories correctlySebastian Thiel
2009-12-30tree: implemented recursive paths in __div__ and __getitem__ method, ↵Sebastian Thiel
allowing the keys to contain slashes; adjusted test to check for this
2009-12-03repo: renamed directories to more descriptive identifiers and made them ↵Sebastian Thiel
safer to use in case of bare repositories
2009-12-01commit.create_from_tree: head will not be advanced anymore as it feels ↵Sebastian Thiel
non-natural when using it
2009-11-27Traversable.traverse: Added as_edge option allowing to receive the source of ↵Sebastian Thiel
the item as well to enable predicates to do more proper checking
2009-11-27Fixed issue with commit traversal due to missing visit_once in the traversal ↵Sebastian Thiel
method, improved code performance by disabling the visit-once flag by default for trees, which by nature are not recursive
2009-11-27ItemTraversal: Predicate and prune functions now provide depth information, ↵Sebastian Thiel
allowing the callee to know more about its environment
2009-11-27improved performance of item traversal, its nearly as fast as it was with ↵Sebastian Thiel
the first very pure implementation
2009-11-26tree: added traversal method, adjusted testsSebastian Thiel
Fixed critical bug in object code: IndexObjects now use their path as hashkey, not the data\!
2009-11-26objects.utils: Added Traversable base and implemented it for commits ↵Sebastian Thiel
including a test
2009-11-25diff: added __str__ method to diff classSebastian Thiel
IndexObject._mode_str_to_int: Now uses the 6 relevant bytes of the passed in octal string