summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
| | * repo: removed commits_between but added a note about how this can be ↵Sebastian Thiel2009-10-152-219/+208
| | | | | | | | | | | | achieved using the iter_commits method; reorganized methods within the type as a start for more interface changes
| | * Added Commit.iter_parents to iterate all parentsSebastian Thiel2009-10-158-84/+109
| | | | | | | | | | | | | | | Renamed Commit.commits to iter_commits repo: assured proper use of the terms revision ( rev ) and reference ( ref )
| | * repo: removed a few methods because of redundancy or because it will be ↵Sebastian Thiel2009-10-156-75/+59
| |/ | | | | | | obsolete once the interface overhaul is finished. This commit is just intermediate
| * All times are not stored as time_struct, but as simple int to consume less ↵Sebastian Thiel2009-10-159-42/+48
| | | | | | | | | | | | memory time imports cleaned up and mostly removed as they were not required (anymore)
* | Initial set of improvementes merged into master, including a class hierarchy ↵Sebastian Thiel2009-10-1545-2746/+3325
|\ \ | |/ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | redesign and performance improvements Merge commit 'origin/improvements' * commit 'origin/improvements': (38 commits) test_performance: module containing benchmarks to get an idea of the achieved throughput Removed plenty of mocked tree tests as they cannot work anymore with persistent commands that require stdin AND binary data - not even an adapter would help here. These tests will have to be replaced. tree: now reads tress directly by parsing the binary data, allowing it to safe possibly hundreds of command calls Refs are now truly dynamic - this costs a little bit of (persistent command) work, but assures refs behave as expected persistent command signature changed to also return the hexsha from a possible input ref - the objects pointed to by refs are now baked on demand - perhaps it should change to always be re-retrieved using a property as it is relatively fast - this way refs can always be cached test_blob: removed many redundant tests that would fail now as the mock cannot handle the complexity of the command backend Implemented git command facility to keep persistent commands for fast object information retrieval test: Added time-consuming test which could also be a benchmark in fact - currently it cause hundreds of command invocations which is slow cmd: added option to return the process directly, allowing to read the output directly from the output stream added Iterable interface to Ref type renamed find_all to list_all, changed commit to use iterable interface in preparation for command changes Added base for all iteratable objects unified name of utils module, recently it was named util and utils in different packages tree: renamed content_from_string to _from_string to make it private. Removed tests that were testing that method tree: now behaves like a list with string indexing functionality - using a dict as cache is a problem as the tree is ordered, added blobs, trees and traverse method test_base: Improved basic object creation as well as set hash tests repo.active_branch now returns a Head object, not a string IndexObjects are now checking their slots to raise a proper error message in case someone tries to access an unset path or mode - this information cannot be retrieved afterwards as IndexObject information is kept in the object that pointed at them. To find this information, one would have to search all objects which is not feasible refs now take repo as first argument and derive from LazyMixin to allow them to dynamically retrieve their objects renamed from_string and list_from_string to _from_string and _list_from_string to indicate their new status as private method, adjusted all callers respectively ...
| * Merge branch 'iteration_and_retrieval' into improvementsSebastian Thiel2009-10-1519-498/+741
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * iteration_and_retrieval: test_performance: module containing benchmarks to get an idea of the achieved throughput Removed plenty of mocked tree tests as they cannot work anymore with persistent commands that require stdin AND binary data - not even an adapter would help here. These tests will have to be replaced. tree: now reads tress directly by parsing the binary data, allowing it to safe possibly hundreds of command calls Refs are now truly dynamic - this costs a little bit of (persistent command) work, but assures refs behave as expected persistent command signature changed to also return the hexsha from a possible input ref - the objects pointed to by refs are now baked on demand - perhaps it should change to always be re-retrieved using a property as it is relatively fast - this way refs can always be cached test_blob: removed many redundant tests that would fail now as the mock cannot handle the complexity of the command backend Implemented git command facility to keep persistent commands for fast object information retrieval test: Added time-consuming test which could also be a benchmark in fact - currently it cause hundreds of command invocations which is slow cmd: added option to return the process directly, allowing to read the output directly from the output stream added Iterable interface to Ref type renamed find_all to list_all, changed commit to use iterable interface in preparation for command changes Added base for all iteratable objects unified name of utils module, recently it was named util and utils in different packages tree: renamed content_from_string to _from_string to make it private. Removed tests that were testing that method tree: now behaves like a list with string indexing functionality - using a dict as cache is a problem as the tree is ordered, added blobs, trees and traverse method test_base: Improved basic object creation as well as set hash tests repo.active_branch now returns a Head object, not a string IndexObjects are now checking their slots to raise a proper error message in case someone tries to access an unset path or mode - this information cannot be retrieved afterwards as IndexObject information is kept in the object that pointed at them. To find this information, one would have to search all objects which is not feasible refs now take repo as first argument and derive from LazyMixin to allow them to dynamically retrieve their objects
| | * test_performance: module containing benchmarks to get an idea of the ↵Sebastian Thiel2009-10-154-19/+46
| | | | | | | | | | | | | | | | | | | | | achieved throughput repo.commits: max_count is None by default moved benchmark-like test from test_commit to test_performance
| | * Removed plenty of mocked tree tests as they cannot work anymore with ↵Sebastian Thiel2009-10-142-102/+4
| | | | | | | | | | | | | | | | | | persistent commands that require stdin AND binary data - not even an adapter would help here. These tests will have to be replaced. test_commit: Improved efficiency of traversal test
| | * tree: now reads tress directly by parsing the binary data, allowing it to ↵Sebastian Thiel2009-10-144-51/+87
| | | | | | | | | | | | safe possibly hundreds of command calls
| | * Refs are now truly dynamic - this costs a little bit of (persistent command) ↵Sebastian Thiel2009-10-143-17/+23
| | | | | | | | | | | | work, but assures refs behave as expected
| | * persistent command signature changed to also return the hexsha from a ↵Sebastian Thiel2009-10-144-15/+18
| | | | | | | | | | | | possible input ref - the objects pointed to by refs are now baked on demand - perhaps it should change to always be re-retrieved using a property as it is relatively fast - this way refs can always be cached
| | * test_blob: removed many redundant tests that would fail now as the mock ↵Sebastian Thiel2009-10-148-67/+46
| | | | | | | | | | | | | | | | | | cannot handle the complexity of the command backend All objects but Tree now use the persistent command to read their object information - Trees get binary data and would need their own pretty-printing or they need to parse the data themselves which is my favorite
| | * Implemented git command facility to keep persistent commands for fast object ↵Sebastian Thiel2009-10-142-4/+109
| | | | | | | | | | | | information retrieval
| | * test: Added time-consuming test which could also be a benchmark in fact - ↵Sebastian Thiel2009-10-145-5/+20
| | | | | | | | | | | | | | | | | | | | | currently it cause hundreds of command invocations which is slow Fixed issue with trees not properly initialized with their default mode _set_cache_: some objects checked whether the attribute was within their __slots__ although it should have been accessed through its class
| | * cmd: added option to return the process directly, allowing to read the ↵Sebastian Thiel2009-10-147-67/+75
| | | | | | | | | | | | | | | | | | | | | output directly from the output stream commit: now reads commit information directly from the output stream of the process by implementing its iterator method repo: removed log method as it was redundant ( equal to the commits method )
| | * added Iterable interface to Ref typeSebastian Thiel2009-10-132-13/+13
| | |
| | * renamed find_all to list_all, changed commit to use iterable interface in ↵Sebastian Thiel2009-10-136-54/+70
| | | | | | | | | | | | preparation for command changes
| | * Added base for all iteratable objectsSebastian Thiel2009-10-131-0/+38
| | |
| | * unified name of utils module, recently it was named util and utils in ↵Sebastian Thiel2009-10-134-3/+3
| | | | | | | | | | | | different packages
| | * tree: renamed content_from_string to _from_string to make it private. ↵Sebastian Thiel2009-10-133-29/+5
| | | | | | | | | | | | Removed tests that were testing that method
| | * tree: now behaves like a list with string indexing functionality - using a ↵Sebastian Thiel2009-10-126-74/+192
| | | | | | | | | | | | | | | | | | dict as cache is a problem as the tree is ordered, added blobs, trees and traverse method repo: remove blob function as blobs are created directly or iterated - primitve types should not clutter the repo interface
| | * test_base: Improved basic object creation as well as set hash testsSebastian Thiel2009-10-121-4/+6
| | |
| | * repo.active_branch now returns a Head object, not a stringSebastian Thiel2009-10-123-16/+31
| | |
| | * IndexObjects are now checking their slots to raise a proper error message in ↵Sebastian Thiel2009-10-121-1/+8
| | | | | | | | | | | | case someone tries to access an unset path or mode - this information cannot be retrieved afterwards as IndexObject information is kept in the object that pointed at them. To find this information, one would have to search all objects which is not feasible
| | * refs now take repo as first argument and derive from LazyMixin to allow them ↵Sebastian Thiel2009-10-124-78/+68
| |/ | | | | | | | | | | to dynamically retrieve their objects Improved way commits are returned by refs as they now use the path to be sure they always point to the ref even if it changes - previously it would use the sha intead so it would not update after being cached on the ref object
| * renamed from_string and list_from_string to _from_string and ↵Sebastian Thiel2009-10-1213-31/+34
| | | | | | | | _list_from_string to indicate their new status as private method, adjusted all callers respectively
| * Reorganized package structure and cleaned up importsSebastian Thiel2009-10-1218-443/+479
| |
| * Merge branch 'hierarchyfix' into improvementsSebastian Thiel2009-10-1137-2634/+2896
| |\ | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | * hierarchyfix: Added remaining tests for new base classes and removed some methods whose existance was doubtful or unsafe Fixed remaining tests to deal with the changes commit: fixed failing commit tests as the mocked git command would always return the same thing which does not work anymore - re-implemented it in a more dynamic manner, but in the end tests will have to be revised anyway mode-only change for test system - this should be in a separate repository in fact so that changes are a little more self-contained and not depending on the actual source repository fixed issue in Ref.name implementation which would not handle components properly lazymixin system now supports per-attribute baking, it is up to the class whether it bakes more. This also leads to more efficient use of memory as values are only cached and set when required - the baking system does not require an own tracking variable anymore, and values are only to be cached once - then python will natively find the cache without involving any additional overhead. This works by using __getattr__ instead of __get_attribute__ which would always be called put Tree and Blob onto a new base class suitable to deal with IndexObjects blob tests fixed to deal with changes to the Blob type converted all spaces to tabs ( 4 spaces = 1 tab ) just to allow me and my editor to work with the files properly. Can convert it back for releaes Re-designed the tag testing - it does not use fixtures anymore but dyamically checks the existance of tags within the repository - it basically tests the interface and checks that expected return types are actually returned Intermediate commit: commit,tree and blob objects now derive from object - test is in place which still fails on purpose. Need to integrate tags which can be objects or just a special form of a ref Renamed lazy.py to base.py to have a file for base classes - lazy not yet changed to allow proper rename tracking
| | * Added remaining tests for new base classes and removed some methods whose ↵Sebastian Thiel2009-10-116-33/+53
| | | | | | | | | | | | existance was doubtful or unsafe
| | * Fixed remaining tests to deal with the changesSebastian Thiel2009-10-118-43/+94
| | | | | | | | | | | | mode is now generally an int compatible to the stat module
| | * commit: fixed failing commit tests as the mocked git command would always ↵Sebastian Thiel2009-10-116-68/+57
| | | | | | | | | | | | | | | | | | return the same thing which does not work anymore - re-implemented it in a more dynamic manner, but in the end tests will have to be revised anyway Added slots to Diff and Stats type respectively
| | * mode-only change for test system - this should be in a separate repository ↵Sebastian Thiel2009-10-111-0/+0
| | | | | | | | | | | | in fact so that changes are a little more self-contained and not depending on the actual source repository
| | * fixed issue in Ref.name implementation which would not handle components ↵Sebastian Thiel2009-10-116-19/+19
| | | | | | | | | | | | properly
| | * lazymixin system now supports per-attribute baking, it is up to the class ↵Sebastian Thiel2009-10-117-147/+114
| | | | | | | | | | | | whether it bakes more. This also leads to more efficient use of memory as values are only cached and set when required - the baking system does not require an own tracking variable anymore, and values are only to be cached once - then python will natively find the cache without involving any additional overhead. This works by using __getattr__ instead of __get_attribute__ which would always be called
| | * put Tree and Blob onto a new base class suitable to deal with IndexObjectsSebastian Thiel2009-10-113-57/+62
| | |
| | * blob tests fixed to deal with changes to the Blob typeSebastian Thiel2009-10-112-6/+7
| | |
| | * converted all spaces to tabs ( 4 spaces = 1 tab ) just to allow me and my ↵Sebastian Thiel2009-10-1129-2723/+2723
| | | | | | | | | | | | editor to work with the files properly. Can convert it back for releaes
| | * Re-designed the tag testing - it does not use fixtures anymore but ↵Sebastian Thiel2009-10-117-166/+303
| | | | | | | | | | | | dyamically checks the existance of tags within the repository - it basically tests the interface and checks that expected return types are actually returned
| | * Intermediate commit: commit,tree and blob objects now derive from object - ↵Sebastian Thiel2009-10-116-40/+132
| | | | | | | | | | | | test is in place which still fails on purpose. Need to integrate tags which can be objects or just a special form of a ref
| | * Renamed lazy.py to base.py to have a file for base classes - lazy not yet ↵Sebastian Thiel2009-10-093-2/+2
| |/ | | | | | | changed to allow proper rename tracking
| * finished cleaning usage of regular expressions - they are now precompiledSebastian Thiel2009-10-093-9/+4
| |
| * diff regex are now precompiled on class level, renamed a|b_blob to ↵Sebastian Thiel2009-10-093-66/+98
| | | | | | | | | | | | | | a|b_blob_id as it better reflects the actual value actor regex now precompiled on class level blob regex now precompiled on class level; made blame method more readable and faster although it can still be improved by making assumptions about the blame format and by reading the git command stream directly ( which is a general issue right now )
| * deriving NoSuchPathError from OSError as it relates to it very wellSebastian Thiel2009-10-091-1/+1
| |
| * Blob|Tree: renamed 'name' member to 'path', updated tests and changelog as ↵Sebastian Thiel2009-10-097-44/+52
| | | | | | | | it would make existing code incompatible in some places
| * Commit._actor method made protected as it is only used by the Commit class ↵Sebastian Thiel2009-10-081-4/+4
|/ | | | and very specific so it's not suited to be part of the public API
* Merge branch 'doc_enhancements' into fixesSebastian Thiel2009-10-0810-86/+245
|\
| * improved repo documentationSebastian Thiel2009-10-082-31/+53
| |
| * Improved head and tag object documentation slightlySebastian Thiel2009-10-083-24/+26
| |
| * Added docs for the error moduleSebastian Thiel2009-10-082-3/+16
| |
| * Added missing information to docstrings of commit and stats moduleSebastian Thiel2009-10-082-21/+88
| |