aboutsummaryrefslogtreecommitdiff
path: root/git/compat.py
AgeCommit message (Collapse)Author
2017-03-08BF: pass original exception into replace_surrogate_encodeYaroslav Halchenko
Fixes my incorrect fix in #598
2017-03-01BF: there is no exc variable, raising NotASurrogateError if that is the ↵Yaroslav Halchenko
right thing todo
2016-10-16fix(surrogateescape): enable on py2, fix testsSebastian Thiel
2016-10-16fix(unicode): use surrogateescape in bytes.decodeSebastian Thiel
That way, we will try to decode as default encoding (usually utf-8), but allow ourselves to simply keep bytes that don't match within the resulting unicode string. That way, we allow for lossless decode/encode cycles while still assuring that decoding never fails. NOTE: I was too lazy to create a test that would verify it, but manually executed https://github.com/petertodd/gitpython-unicode-error. fixes #532
2016-10-04src: No PyDev warningsKostis Anagnostopoulos
+ Mark all unused vars and other non-pep8 (PyDev) warnings + test_utils: + enable & fix forgotten IterableList looped path. + unittestize all assertions. + remote: minor fix progress dispatching unknown err-lines
2016-10-01Win, #519: FIX repo TCs.Kostis Anagnostopoulos
+ FIX TestRepo.test_submodule_update(): + submod: del `.git` file prior overwrite; Windows denied otherwise! + FIX TestRepo.test_untracked_files(): + In the `git add <file>` case, it failed with unicode args on PY2. Had to encode them with `locale.getpreferredencoding()` AND use SHELL. + cmd: add `shell` into `execute()` kwds, for overriding USE_SHELL per command. + repo: replace blocky `communicate()` in `_clone()` with thread-pumps. + test_repo.py: unittestize (almost all) assertions. + Replace open --> with open for index (base and TC). + test_index.py: Enabled a dormant assertion.
2016-09-29FIX hook TC on PY3+Win & indeterministic lock timing.Kostis Anagnostopoulos
+ Cannot `index.path` into ENV, it is bytes! + The hook TC never runs on linux! + Unblock removal of odbfile in perf-large streams TC. + Attempt to unblock removal of submodule file by intensive cleaning. more unblock files
2016-09-28Win, hook, #519: Consume Hook Popen-proc out of GILKostis Anagnostopoulos
+ HookException thrown on Popen, and were missed on Windows. + No SHELL on Popen?? + Minor fixes: + Try harder to delete trees - no remorses. + Simplify exception reprs. + Unittest-ize test_index assertions.
2016-09-28Win, #519: Ensure fixtures & bashscript checked-out eol=lfKostis Anagnostopoulos
+ FIX all Diff TCs.
2016-09-28src: constify is_<platform>() callsKostis Anagnostopoulos
+ TCs: unittest-asserts for git-tests.
2016-09-28PY2, #519: FIX GitCommandError.tostr() encoding issueKostis Anagnostopoulos
+ PY3 means "PY3 or later" (TODO: fix also for *gitdb* project).
2016-09-27src, #519: collect all is_<platform>() callsKostis Anagnostopoulos
2016-06-14Store raw path bytes in Diff instancesVincent Driessen
Previously, the following fields on Diff instances were assumed to be passed in as unicode strings: - `a_path` - `b_path` - `rename_from` - `rename_to` However, since Git natively records paths as bytes, these may potentially not have a valid unicode representation. This patch changes the Diff instance to instead take the following equivalent fields that should be raw bytes instead: - `a_rawpath` - `b_rawpath` - `raw_rename_from` - `raw_rename_to` NOTE ON BACKWARD COMPATIBILITY: The original `a_path`, `b_path`, etc. fields are still available as properties (rather than slots). These properties now dynamically decode the raw bytes into a unicode string (performing the potentially destructive operation of replacing invalid unicode chars by "�"'s). This means that all code using Diffs should remain backward compatible. The only exception is when people would manually construct Diff instances by calling the constructor directly, in which case they should now pass in bytes rather than unicode strings. See also the discussion on https://github.com/gitpython-developers/GitPython/pull/467
2016-06-14Python 2.6 compatVincent Driessen
2016-05-18Need spaces in Emacs style encoding commentSteven Colby
Although it's hard to see, PEP-0263 does have ws delimiting the 'coding' string. This commit will fix the root cause of (at least) one bug: https://lists.fedoraproject.org/archives/list/eclipse-sig@lists.fedoraproject.org/thread/5XQ5JRHG6DPPMGRDU7TA2AO4EYS2H7AG/
2016-04-19Remove Python 2.6 hackVincent Driessen
Since support was dropped.
2016-04-14Drop dependency on sixVincent Driessen
2016-04-14Fix commentVincent Driessen
2016-04-13Add incremental blame supportVincent Driessen
This adds a sibling method to Repo's blame method: Repo.blame_incremental(rev, path, **kwargs) This can alternatively be called using: Repo.blame(rev, path, incremental=True) The main difference is that blame incremental is a bit more efficient and does not return the full file's contents, just the commits and the line number ranges. The parser is a bit more straight-forward and faster since the incremental output format is defined a little stricter.
2015-01-07This should fix flake8 on py3Sebastian Thiel
See #177
2015-01-06test_index worksSebastian Thiel
2015-01-05test_fun worksSebastian Thiel
2015-01-05Fixes test_blob and improved commit writing/readingSebastian Thiel
2015-01-05Intermediate commit: test_config and test_actor worksSebastian Thiel
Kind of tackling the tasks step by step, picking low-hanging fruit first, or the ones that everyone depends on
2015-01-05Fixed io types to make tests work on PY2 once again.Sebastian Thiel
Now it's about going through PY3 issues
2015-01-04Dum brute force conversion of all types.Sebastian Thiel
However, StringIO really is ByteIO in most cases, and py2.7 should run but doesn't. This should be made work first.
2015-01-04initial set of adjustments to make (most) imports work.Sebastian Thiel
More to come, especially when it's about strings