aboutsummaryrefslogtreecommitdiff
path: root/lib/git/repo.py
AgeCommit message (Collapse)Author
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-23Added test for aggressive_tree_mergeSebastian Thiel
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-21index.add: now uses gitdb.store functionality instead of git-hash-file. The ↵Sebastian Thiel
python version is about as fast, but could support multithreading using async
2010-06-20db: added pure python git databaseSebastian Thiel
repo: now has the option to use the pure python git database implementation, which is currently not used though
2010-06-18GitCmd implementation of gitdb base moved to git-python where it belongs. ↵Sebastian Thiel
Previously it was located in gitdb, which doesn't have any facilities to use the git command
2010-06-14Moved small types that had their own module into the utils moduleSebastian Thiel
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-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-05-12Repo: Added comparison operators and hash operator including testSebastian Thiel
Cmd: AutoInterrupt handles boundary cases more gracefully as it can be that the os module suddenly becomes None if the interpreter is going down
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-10repo: added test with some basic assertions for empty repositories theseSebastian Thiel
repo.is_dirty: Will not fail on empty repo ( anymore ) index.entries: will just be empty if the repository is empty refs: added to_full_path method which can be used to create fully synthetic instances of Reference types, added a test for it Converted all touched files to spaces, which is why git reports so many changed files. Actually I was thinking every file would use spaces, but apparently not
2010-04-30Added additional tz_offset testing in performance test to call it more often.Sebastian Thiel
Fixed test which required to be on master to work - it now uses the HEAD symbolic ref instead.
2010-03-04Converted all tabs to 4 space characters each to comply with pep8Sebastian Thiel
2010-02-13IndexFile: unmerged_blobs lists are now sortedSebastian Thiel
Repo.init: fixed incorrect use of the path which was to optionally specify where to initialize the repository. Update test as well
2009-12-09repo: Added alias for refs property, which is called 'references' , to ↵Sebastian Thiel
improve usability. There was no reason that only 'refs' is shortened, whereas there are 'heads' and 'tags' as well
2009-12-03repo: renamed directories to more descriptive identifiers and made them ↵Sebastian Thiel
safer to use in case of bare repositories
2009-12-03repo: fixed incorrect path handling thta could lead to issues if the ↵Sebastian Thiel
repository was initialized with a .git repository, although it was not bare actually
2009-11-10repo: may now be initialized from a path with envrionment variables. ↵Sebastian Thiel
Previously it would consider such a path a relative one and handle it incorrectly
2009-11-05repo.clone: Added plenty of special handling to allow drive letters to work ↵Sebastian Thiel
as expected. Its quite terrible to see a two-line method inflate to 20 as there is no git-daemon on windows, some tests will not work. The error message has been adjusted to be more precise for the poor people trying to run the tests on windows ( including myself )
2009-11-04Improved cmd error handling in case an invalid revision is specified for an ↵Sebastian Thiel
object repo.tree: improved to be less restricting
2009-11-03object: renamed id attribute to sha as it in fact is always being rewritten ↵Sebastian Thiel
as sha, even if the passed in id was a ref. This is done to assure objects are uniquely identified and will compare correctly
2009-11-03repo: added create_* and delete_* methods for refs ( head, tag, remote ) as ↵Sebastian Thiel
a convenient shortcut to using the classes manually
2009-11-03repo.is_dirty: is a method now - the property based interface didn't allow ↵Sebastian Thiel
all parameters to be used. The test would not test everything either, and I would consider this a bug that slipped through
2009-10-28Another attempt to make fetch emit progress information, but in fact its ↵Sebastian Thiel
proven now that this is not happening if stderr is being redirected. A test is in place that will most likely fail in case this ever changes
2009-10-28Added repo.refs for completeness (as remote.refs is there as well and quite ↵Sebastian Thiel
nice to use)
2009-10-23Added repo.index property including simple test, and additional ideas in the ↵Sebastian Thiel
TODO list
2009-10-22Added SymbolicReference and HEAD type to better represent these special ↵Sebastian Thiel
types of references and allow special handling Head.reset now is an instance method of HEAD type Concatenated all reference specific tests into test_refs started to fix tests breaking now because of changed interface
2009-10-22Git.cmd: removed with_raw_output optionSebastian Thiel
repo.archive: made it work with new way of custom output streams added test for repo.archive which was missing for some reason
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-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-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-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-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-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-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