summaryrefslogtreecommitdiff
path: root/gitdb/pack.py
Commit message (Collapse)AuthorAgeFilesLines
* fix(io): BREAKING, wrap more out-stream usagesKostis Anagnostopoulos2016-10-251-45/+48
| | | | | | + chrore(deps): depend on *contextlib2* for `ExitStack` in PY2. + refact(util): BREAKING API move consts out of utils. + style(pep8): fixe all sources.
* fix(pack): restore packers as LazyMixinsKostis Anagnostopoulos2016-10-241-88/+75
| | | | | | | Speed-up for non-error commits: + no-leak contextlibing(v.2.0.0, 941b6c7e): 5.20 + Prev commit, no LazyMixin(v.2.1.0.dev1): 7.70 + This commit, LazyMixin: 5.50
* fix(win): FIX and HIDE 2 win-errors remainingv2.1.0.dev1Kostis Anagnostopoulos2016-10-241-1/+1
| | | | | + File-in-use errors were fixed with `gitdb.util.mman.collect()`! + This call is disabled `gitdb.util.HIDE_WINDOWS_KNOWN_ERRORS == False`. + Depend on latest smmp `v2.1.0.dev1` tag
* feat(io): breaking API: retrofit Packers as context-managers!Kostis Anagnostopoulos2016-10-241-126/+182
| | | | | | | | | | + Packers MUST be invoked inside `Withh...` blocks, or `_cursor` won't exist! + Had to drop NotLazy for their hierarchy :-( + Count entrances/exits. + feat(util: add `rmtree()` for READ_ONLY files on Windows. 3-->2 Windows TCs now fail.
* feat(io): Retrofit streams as context-managers.Kostis Anagnostopoulos2016-10-241-6/+6
| | | | | + feat(util): add logger. + feat(util): add suppress-ex context-handler (from PY3 sources).
* feat(src): subst `reduce` with `sum` for size calcsKostis Anagnostopoulos2016-10-241-1/+1
| | | | + fix(loose-db): fix bad-attr in ex-message
* support optional gitdb_speedupsThomas Grainger2016-10-041-1/+1
|
* Spelling fixesVille Skyttä2016-07-271-2/+2
|
* Adjusted stream logic to make it work on all tested platforms ... .Sebastian Thiel2015-01-121-0/+1
| | | | | | | | | | | | | | | | | As taken from https://github.com/gitpython-developers/gitdb/blob/master/gitdb/stream.py#L292 -> NOTE: Behavior changed in PY2.7 onward, which requires special handling to make the tests work properly. They are thorough, and I assume it is truly working. Why is this logic as convoluted as it is ? Please look at the table in https://github.com/gitpython-developers/gitdb/issues/19 to learn about the test-results. Bascially, on py2.6, you want to use branch 1, whereas on all other python version, the second branch will be the one that works. However, the zlib VERSIONs as well as the platform check is used to further match the entries in the table in the github issue. This is it ... it was the only way I could make this work everywhere. IT's CERTAINLY GOING TO BITE US IN THE FUTURE ... . <- Fixes #19
* Fixed yet another issue with smmap's latest changesSebastian Thiel2015-01-061-2/+7
| | | | Now we deal with memory views as well ...
* Applied autopep8Sebastian Thiel2015-01-041-56/+55
| | | | autopep8 -v -j 8 --max-line-length 120 --in-place --recursive
* Now tests work consistently in py2 and 3Sebastian Thiel2014-11-131-12/+9
| | | | It's a nice way of saying that there is still one failing, consistently.
* Fixed all applicable lint issuesSebastian Thiel2014-11-131-5/+2
|
* Merge branch 'kevin-brown-issue_4' into py2n3Sebastian Thiel2014-11-131-251/+260
|\ | | | | | | | | | | | | | | | | | | Conflicts: gitdb/base.py gitdb/fun.py gitdb/pack.py gitdb/stream.py gitdb/test/lib.py gitdb/util.py
| * Made sure xrange is used instead of range in python 2Sebastian Thiel2014-11-131-5/+5
| | | | | | | | | | | | | | range in py2 will return a list, which can mean a lot of time and memory is spent on generating it even though it's just used for iteration. Simplified implementation of MAXSIZE
| * Start up compat and encoding filesKevin Brown2014-07-161-11/+7
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | There were a few things which were being reused consistently for compatibility purposes, such as the `buffer`/`memoryview` functions as well as the `izip` method which needed to be aliased for Python 3. The `buffer` function was taken from `smmap` [1] and reworked slightly to handle the optional third parameter. This also adds a compatibility file dedicated entirely to encoding issues, which seem to be the biggest problem. The main functions were taken in part from the Django project [2] and rewritten slightly because our needs are a bit more narrow. A constants file has been added to consistently handle the constants which are required for the gitdb project in the core and the tests. This is part of a greater plan to reorganize the `util.py` file included in this project. This points the async extension back at the original repository and points it to the latest commit. [1]: https://github.com/Byron/smmap/blob/1af4b42a2354acbb53c7956d647655922658fd80/smmap/util.py#L20-L26 [2]: https://github.com/django/django/blob/b8d255071ead897cf68120cd2fae7c91326ca2cc/django/utils/encoding.py
| * Can't compare memoryview instances, convert to bytesKevin Brown2014-07-131-1/+2
| |
| * More bytes handlingKevin Brown2014-07-131-1/+5
| |
| * Better handling of bytesKevin Brown2014-07-131-12/+14
| | | | | | | | | | | | | | This adds a `byte_ord` version of `ord` which will let `bytes` safely pass through in Python 3. `cmp` was also swapped out as it has been dropped in Python 3.
| * Pick off the low hanging fruitKevin Brown2014-07-131-44/+50
| | | | | | | | | | | | | | | | | | | | | | This fixes most of the import errors that came from using the implicit relative imports that Python 2 supports. This also fixes the use of `xrange`, which has replaced `range` in Python 3. The same has happened for `izip`, which is also being aliased. The octal number syntax changed in Python 3, so we are now converting from strings using the `int` built-in function, which will produce the same output across both versions of Python.
| * Automated PEP 8 fixesKevin Brown2014-07-131-197/+197
| |
* | Minor adjustments to adapt to changes in async (due to be removed anyway)Sebastian Thiel2014-11-131-1/+2
|/
* tabs to spacesSebastian Thiel2014-02-091-960/+960
|
* pack: updated to use its cursor properly, which will be required if huge ↵Sebastian Thiel2011-07-051-13/+19
| | | | | | packs should be handled. This reduces performance as each access requires the windows to be checked/adjusted, but that is how it is. This should be circumvented using other backends, like the one of the gitcmd or libgit2. Default is now the sliding memory map manager
* Fixed up docs for upcoming release. Bumped version to 0.5.3Sebastian Thiel2011-06-131-12/+17
|
* Switched git db to the non-sliding version of the memory manager which is a ↵Sebastian Thiel2011-06-101-40/+36
| | | | good tradeoff between performance loss and resource handling
* crc needs to be done on the pack object header as well, of courseSebastian Thiel2011-03-311-4/+18
|
* Implemented remainder of the test, and it already shows that something is ↵Sebastian Thiel2011-03-311-15/+47
| | | | wrong with my packs. Probably something stupid ;)
* initial version of pack writing, which seems to work, but still needs some ↵Sebastian Thiel2011-03-311-7/+189
| | | | more testing and verification
* Added stub for pack writing implementation which should work for pack ↵Sebastian Thiel2011-03-311-6/+19
| | | | streaming over a transport as well
* preprended all modules with licensing informationSebastian Thiel2011-02-231-0/+4
|
* setup and doc generation works once againSebastian Thiel2010-11-301-1/+1
|
* moved all relevant files into the gitdb folder.Sebastian Thiel2010-11-301-0/+760
Submodule relinked to point to new github location, and moved as well