| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
| | |
| | |
| | | |
achieved using the iter_commits method; reorganized methods within the type as a start for more interface changes
|
| | |
| | |
| | |
| | |
| | | |
Renamed Commit.commits to iter_commits
repo: assured proper use of the terms revision ( rev ) and reference ( ref )
|
| |/
| |
| |
| | |
obsolete once the interface overhaul is finished. This commit is just intermediate
|
| |
| |
| |
| |
| |
| | |
memory
time imports cleaned up and mostly removed as they were not required (anymore)
|
|\ \
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
...
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
achieved throughput
repo.commits: max_count is None by default
moved benchmark-like test from test_commit to test_performance
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
safe possibly hundreds of command calls
|
| | |
| | |
| | |
| | | |
work, but assures refs behave as expected
|
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
information retrieval
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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 )
|
| | | |
|
| | |
| | |
| | |
| | | |
preparation for command changes
|
| | | |
|
| | |
| | |
| | |
| | | |
different packages
|
| | |
| | |
| | |
| | | |
Removed tests that were testing that method
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
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
|
| |/
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| | |
_list_from_string to indicate their new status as private method, adjusted all callers respectively
|
| | |
|
| |\
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
* 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
|
| | |
| | |
| | |
| | | |
existance was doubtful or unsafe
|
| | |
| | |
| | |
| | | |
mode is now generally an int compatible to the stat module
|
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | |
| | |
| | |
| | | |
in fact so that changes are a little more self-contained and not depending on the actual source repository
|
| | |
| | |
| | |
| | | |
properly
|
| | |
| | |
| | |
| | | |
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
|
| | | |
|
| | | |
|
| | |
| | |
| | |
| | | |
editor to work with the files properly. Can convert it back for releaes
|
| | |
| | |
| | |
| | | |
dyamically checks the existance of tags within the repository - it basically tests the interface and checks that expected return types are actually returned
|
| | |
| | |
| | |
| | | |
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
|
| |/
| |
| |
| | |
changed to allow proper rename tracking
|
| | |
|
| |
| |
| |
| |
| |
| |
| | |
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 )
|
| | |
|
| |
| |
| |
| | |
it would make existing code incompatible in some places
|
|/
|
|
| |
and very specific so it's not suited to be part of the public API
|
|\ |
|
| | |
|
| | |
|
| | |
|
| | |
|