aboutsummaryrefslogtreecommitdiff
path: root/lib/git/repo.py
AgeCommit message (Collapse)Author
2010-07-06Made repo.py a package to allow better localization of functions and ↵Sebastian Thiel
utilities - the repo module got rather large
2010-07-06Implemented main rev-parsing, including long hexshas, tags and refs. Short ↵Sebastian Thiel
Shas still to be done
2010-07-06RevParse now generally works, but there are still some more specialized ↵Sebastian Thiel
tests missing
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-29Renamed modules utils to util, and errors to exc to be more conforming to ↵Sebastian Thiel
the submodules's naming conventions
2010-06-29Removed repo tests which for some reason left the 'repos' directory around, ↵Sebastian Thiel
replaced them by a real test which actually executes code, and puts everything into the tmp directory
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-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