| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
| |
was mainly copy-paste from with_rw_repo, what a shame
|
|
|
|
|
|
| |
local cache - previously a procedural approach was used, which was less code, but slower too. Especially in case of CommitObjects unrolling the loop manually makes a difference.
Submodule: Implemented query methods and did a bit of testing. More is to come, but the test works for now. As special addition, the submodule implementation uses the section name as submodule ID even though it seems to be just the path. This allows to make renames easier
|
|
|
|
| |
rev_parse could be adjusted not to return Objects anymore, providing better performance for those who just want a sha only. On the other hand, the method is high-level and should be convenient to use as well, its a starting point for more usually, hence its unlikely to call it in tight loops
|
|
|
|
| |
its still rather slow and many tests are not yet implemented
|
|
|
|
| |
the submodules's naming conventions
|
| |
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
correctly, a test to explicitly compare the git version with the python implementation is still missing
Tree and Index internally use 20 byte shas, converting them only as needed to reduce memory footprint and processing time
objects: started own 'fun' module containing the most important tree functions, more are likely to be added soon
|
|
|
|
| |
fast, while staying compatible with serialization which requires it to be sorted
|
|
|
|
| |
but next there will have to be more through testing
|
|
|
|
| |
multi-threading implementation of all odb functions
|
|
|
|
| |
everything. Next is to implement pack-file reading, then alternates which should allow to resolve everything
|
|
|
|
|
|
| |
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
|
|
|
|
| |
efficiently considering that it copies string buffers all the time
|
|
|
|
|
|
|
| |
performance is slightly better
git.cmd: added method to provide access to the content stream directly. This is more efficient if large objects are handled, if it is actually used
test.helpers: removed unnecessary code
|
|
|
|
| |
objects if it could serialize itself
|
| |
|
|
|
|
| |
safer to use in case of bare repositories
|
|
|
|
| |
Fixed critical bug in object code: IndexObjects now use their path as hashkey, not the data\!
|
|
|
|
| |
IndexObject._mode_str_to_int: Now uses the 6 relevant bytes of the passed in octal string
|
|
|
|
|
|
|
| |
backslashes depending on the operating system
fixed test_refs and test_trees
Many more issues remain though, this is just a first backup commit
|
|
|
|
|
|
| |
previously it would just be a name )
added abspath property and name property to provide easy access to most common paths of an index object
|
|
|
|
| |
as sha, even if the passed in id was a ref. This is done to assure objects are uniquely identified and will compare correctly
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
low memory footprint.
Still, the git-cat-file command keeps all data in an interal buffer instead of streaming it directly.
This is a git design issue though, and will be hard to address without some proper git-hacking.
Conflicts:
lib/git/cmd.py
|
|
|
|
| |
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
|
|
|
|
| |
diff module, which probably is the right thing to do anyway
|
|
|
|
| |
create objects, whose import would create a dependency cycle
|
|
|
|
| |
Diff class has been prepared to process raw input, but its not yet more than a frame
|
|
|
|
|
|
| |
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
|
|
|
|
| |
create an object directly - this feature is used in several places now, allowing for additional type-checking
|
|
|
|
| |
safe possibly hundreds of command calls
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
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
|
|
|