aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2009-10-22added Object.data_stream property allowing to stream object data ↵Sebastian Thiel
directly.Considering the implementation of the git commnd which temporarily keeps it in a cache, it doesnt make a huge diffence as the data is kept in memory while streaming. Only good thing is that it is in a different process so python will never see it if done properly
2009-10-21remote: Added fetch, pull, push methods to the interface to make these ↵Sebastian Thiel
operations more convenient, like repo.remotes.origin.fetch
2009-10-21remote.refs now returns an IterableList allowing easier access to the ↵Sebastian Thiel
remotes, and conforming it to the way repo returns its references as well
2009-10-21diff: added test to be sure index-vs-working copy diffs are solved properlySebastian Thiel
2009-10-21repo.is_dirty: fixed incorrect check of a dirty working tree, previously it ↵Sebastian Thiel
would compare HEAD against the working tree, not the index which was intended
2009-10-21touch method improved to open for appending which would not clear the file ↵Sebastian Thiel
and be like an actual touch
2009-10-20repo.alternates test cheked for correctness and bugfixed - totally mocked ↵Sebastian Thiel
tests bare the risk that things do not work properly outside of the sandbox.
2009-10-20Added slots to Repo type to be sure we do not accidentally set values on it, ↵Sebastian Thiel
and to be more efficient of course ;) TODO: Added info about possible config improvement
2009-10-20Fixed bare repository handling - bare is now a property to prevent writing itSebastian Thiel
2009-10-20Moved specialized methods like dashify, touch and is_git_dir to module to ↵Sebastian Thiel
the respective modules that use them fixed repo.daemon_export which did not work anymore due to incorrect touch implementation and wrong property names
2009-10-20Improved is_dirty including testSebastian Thiel
2009-10-19Implemneted IterableLists for refs, commits and remote objects including ↵Sebastian Thiel
simple tests
2009-10-19Added TODO file to keep track of tasks and in case someone wants to help ↵Sebastian Thiel
here and there ;)
2009-10-19commit.count: is an instance method nowSebastian Thiel
repo: added head , tag and iter_trees methods for completeness changes: headlines now sorted chronologically
2009-10-19repo.remote method addedSebastian Thiel
CHANGES updated to carry information about remotes and config
2009-10-19Merge branch 'remotes' into improvementsSebastian Thiel
* remotes: remote: added tests for creation and removal, finishing the remote interface remote: base tests succeed now config: fixed serious issues that would cause it to see initial tabs as continuation lines - this leads to very incorrect results when parsing git config files. Now the complete reading is overridden to make it work as there was no other way Added configuration access including tests to remote Added remote module and test cases - about to implement remote option handling added initial frame for remote handling- remotes are somewhat related to either parsing the command output or to reading the repo configuration which would be faster
2009-10-19remote: added tests for creation and removal, finishing the remote interfaceSebastian Thiel
2009-10-19remote: base tests succeed nowSebastian Thiel
2009-10-19config: fixed serious issues that would cause it to see initial tabs as ↵Sebastian Thiel
continuation lines - this leads to very incorrect results when parsing git config files. Now the complete reading is overridden to make it work as there was no other way
2009-10-19Added configuration access including tests to remoteSebastian Thiel
config: fixed issue that would cause it to abort reading if the file did not exist - this is valid now Test does not work as the configuration parsing does not work as expected - this must be fixed first
2009-10-19Added remote module and test cases - about to implement remote option handlingSebastian Thiel
2009-10-19added initial frame for remote handling- remotes are somewhat related to ↵Sebastian Thiel
either parsing the command output or to reading the repo configuration which would be faster
2009-10-19Merge branch 'config' into improvementsSebastian Thiel
* config: added additional testing for the configuration, concurrent access and config reading, all tests work implemented config class as far as necessary, one check is still failing Added frame for configuration reader involving a meta class, decorators and tests - most of which still has to be filled out
2009-10-19added additional testing for the configuration, concurrent access and config ↵Sebastian Thiel
reading, all tests work
2009-10-19implemented config class as far as necessary, one check is still failingSebastian Thiel
Added odict module to get an OrderedDict to be used in the config parser, assuring the order of sections and options does not change
2009-10-18Added frame for configuration reader involving a meta class, decorators and ↵Sebastian Thiel
tests - most of which still has to be filled out
2009-10-18Improved tagobject message handling by not assuming an empty fourth line anymoreSebastian Thiel
2009-10-18diff method now checks for git-diff errrs that can easily occour if the ↵Sebastian Thiel
repository is bare and if there is no index or second tree specified
2009-10-18Merge branch 'diffing' into improvementsSebastian Thiel
* diffing: DiffIndex implemented including test diff: implemented raw diff parsing which appears to be able to handle possible input types, DiffIndex still requires implementation though resolved cyclic inclusion issue by moving the Diffable interface into the diff module, which probably is the right thing to do anyway repo: fixed untracked files function which used git-commit before, it can open vim to get a message though which makes the program appear to freeze - using git-status now implemented diff tests, but will have to move the diff module as it needs to create objects, whose import would create a dependency cycle Removed a few diff-related test cases that fail now as the respective method is missing - these tests have to be redone in test-diff module accordingly added Diffable interface to objects.base, its used by Commit and Tree objects. Fixed object bug that would cause object ids not to be resolved to sha's as this was assumed - now there is a test for it as well
2009-10-18DiffIndex implemented including testSebastian Thiel
2009-10-18diff: implemented raw diff parsing which appears to be able to handle ↵Sebastian Thiel
possible input types, DiffIndex still requires implementation though
2009-10-18resolved cyclic inclusion issue by moving the Diffable interface into the ↵Sebastian Thiel
diff module, which probably is the right thing to do anyway
2009-10-18repo: fixed untracked files function which used git-commit before, it can ↵Sebastian Thiel
open vim to get a message though which makes the program appear to freeze - using git-status now
2009-10-18implemented diff tests, but will have to move the diff module as it needs to ↵Sebastian Thiel
create objects, whose import would create a dependency cycle
2009-10-17Removed a few diff-related test cases that fail now as the respective method ↵Sebastian Thiel
is missing - these tests have to be redone in test-diff module accordingly
2009-10-16added Diffable interface to objects.base, its used by Commit and Tree objects.Sebastian Thiel
Diff class has been prepared to process raw input, but its not yet more than a frame
2009-10-16Fixed object bug that would cause object ids not to be resolved to sha's as ↵Sebastian Thiel
this was assumed - now there is a test for it as well repo: removed diff and commit_diff methods, added 'head' property returning the current head as Reference object
2009-10-16repo.untracked_files added including testSebastian Thiel
2009-10-15Merge branch 'repo_interface' into improvementsSebastian Thiel
* repo_interface: Improved archive function by allowing it to directly write to an output stream - previously it would cache everything to memory and try to provide zipping functionality itself repo: made init and clone methods less specific, previously they wanted to do it 'barely' only. New method names closely follow the default git command names repo.commit_delta_base: removed Object can now create objects of the proper type in case one attempts to create an object directly - this feature is used in several places now, allowing for additional type-checking repo: removed commits_between but added a note about how this can be 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 parents repo: removed a few methods because of redundancy or because it will be obsolete once the interface overhaul is finished. This commit is just intermediate
2009-10-15Improved archive function by allowing it to directly write to an output ↵Sebastian Thiel
stream - previously it would cache everything to memory and try to provide zipping functionality itself gitcmd: allows the output stream to be set explicitly which is mainly useful for archiving operations
2009-10-15repo: made init and clone methods less specific, previously they wanted to ↵Sebastian Thiel
do it 'barely' only. New method names closely follow the default git command names
2009-10-15repo.commit_delta_base: removedSebastian Thiel
2009-10-15Object can now create objects of the proper type in case one attempts to ↵Sebastian Thiel
create an object directly - this feature is used in several places now, allowing for additional type-checking
2009-10-15repo: removed commits_between but added a note about how this can be ↵Sebastian Thiel
achieved using the iter_commits method; reorganized methods within the type as a start for more interface changes
2009-10-15Added Commit.iter_parents to iterate all parentsSebastian Thiel
Renamed Commit.commits to iter_commits repo: assured proper use of the terms revision ( rev ) and reference ( ref )
2009-10-15repo: removed a few methods because of redundancy or because it will be ↵Sebastian Thiel
obsolete once the interface overhaul is finished. This commit is just intermediate
2009-10-15All times are not stored as time_struct, but as simple int to consume less ↵Sebastian Thiel
memory time imports cleaned up and mostly removed as they were not required (anymore)
2009-10-15Merge branch 'iteration_and_retrieval' into improvementsSebastian Thiel
* 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
2009-10-15test_performance: module containing benchmarks to get an idea of the ↵Sebastian Thiel
achieved throughput repo.commits: max_count is None by default moved benchmark-like test from test_commit to test_performance
2009-10-14Removed plenty of mocked tree tests as they cannot work anymore with ↵Sebastian Thiel
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