summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
* Store raw path bytes in Diff instanceskeep-raw-bytes-on-diffsVincent Driessen2016-06-144-18/+51
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Python 2.6 compatVincent Driessen2016-06-141-1/+1
|
* doc(changes): inform about new APISebastian Thiel2016-06-141-2/+3
| | | | Relates to #446
* fix(test_docs): skip master-dependent assertionSebastian Thiel2016-06-141-1/+3
| | | | | It usually fails on branches, which doesn't help assessing PRs.
* Merge pull request #446 from guyzmo/updating_remote_url_handlingSebastian Thiel2016-06-142-2/+95
|\ | | | | Adding support for git remote set-url/get-url API to Remote
| * Switching the `urls` property to use `git remote show` instead of `git ↵Guyzmo2016-06-081-4/+4
| | | | | | | | | | | | | | | | | | remote get-url` `get-url` is a new API that is not widely available yet (introduced in git 2.7.0), and provokes failure on travis. Signed-off-by: Guyzmo <guyzmo+github@m0g.net>
| * Adding support for git remote set-url/get-url API to RemoteGuyzmo2016-06-082-2/+95
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Both commands enable handling of a little known feature of git, which is to support multiple URL for one remote. You can add multiple url using the `set_url` subcommand of `git remote`. As listing them is also handy, there's a nice method to do it, using `get_url`. * adding set_url method that maps to the git remote set-url command¶ * can be used to set an URL, or replace an URL with optional positional arg¶ * can be used to add, delete URL with kwargs (matching set-url options)¶ * adding add_url, delete_url methods that wraps around set_url for conveniency¶ * adding urls property that yields an iterator over the setup urls for a remote¶ * adding a test suite that checks all use case scenarii of this added API.¶ Signed-off-by: Guyzmo <guyzmo+github@m0g.net>
* | Merge pull request #467 from ↵Sebastian Thiel2016-06-143-10/+18
|\ \ | | | | | | | | | | | | gitpython-developers/fix-dont-choke-on-invalid-unicode-paths Don't choke on (legitimately) invalidly encoded Unicode paths
| * | Don't choke on (legitimately) invalidly encoded Unicode pathsfix-dont-choke-on-invalid-unicode-pathsVincent Driessen2016-06-063-10/+18
| | |
* | | fix(flake): misc whitespace fixesSebastian Thiel2016-06-143-3/+1
| | |
* | | fix(cmd): allow any kind of status messageSebastian Thiel2016-06-131-1/+0
| | | | | | | | | | | | | | | I see no need in verifying the status code. It's enough to just get the error.
* | | doc(README): add basic contribution guidelinesSebastian Thiel2016-06-132-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The main point is that from now on, tests are required to add new features. If the fix is minor enough, not having a test is probably alright. That distinction is not represented in the contribution guide as more tests are better - people should prefer to have a test whenever they contribute anything. My motivation to finally do this is the sad realization that I grow too unconfident about the quality of some contributions without having tests that proof they are valid. It's not enough to not break anything that exists, as the current test-suite is certainly not perfect either.
* | | fix(misc): various cleanupSebastian Thiel2016-06-134-48/+17
| | | | | | | | | | | | | | | | | | | | | | | | | | | Just went through all changes and adjusted them to the best of my abilities. As there are no tests to claim otherwise, I believe this is correct enough. However, it becomes evident that it's no longer possible to just make changes without backing them with a respective test.
* | | Merge branch 'pr-cmd-raise-with-stderr-on-error' of ↵Sebastian Thiel2016-06-133-9/+61
|\ \ \ | | | | | | | | | | | | https://github.com/barry-scott/GitPython into barry-scott-pr-cmd-raise-with-stderr-on-error
| * | | Can get a str object from stream.read rather then bytes.Barry Scott2016-06-061-1/+4
| | | | | | | | | | | | Convert to the expected bytes.
| * | | log all the output from stdout and stderr for debugging process failuresBarry Scott2016-06-061-1/+14
| | | |
| * | | Merge remote-tracking branch 'upstream/master' into ↵Barry Scott2016-06-0613-19/+71
| |\ \ \ | | |/ / | | | | | | | | pr-cmd-raise-with-stderr-on-error
| * | | Make sure that stderr is converted to bytesBarry Scott2016-05-302-5/+14
| | | | | | | | | | | | remove stderr for a wait() that is not the GitPython wrapper.
| * | | Fix flake8 complaintsBarry Scott2016-05-302-4/+4
| | | |
| * | | Return stderr lines from a pull() call that failsBarry Scott2016-05-292-1/+13
| | | |
| * | | Return all the stderr messge after an error is detected for pull()Barry Scott2016-05-292-5/+20
| | | |
* | | | fix(repo): prevent error messages from being swallowedSebastian Thiel2016-06-131-1/+2
| |/ / |/| | | | | | | | | | | | | | | | | This issue must have rosen from `to_progress_instance()` being inserted in a spot where `None` was a legit value. Fixes #462
* | | Merge pull request #460 from ddanier/autointerrupt_del_no_os_killSebastian Thiel2016-06-021-1/+1
|\ \ \ | | | | | | | | Make sure os is not even partly destroyed
| * | | Make sure os is not even partly destroyedDavid Danier2016-06-011-1/+1
| | | |
* | | | fix(test): remove unused importSebastian Thiel2016-06-022-1/+1
|/ / /
* | | Merge pull request #459 from andy-maier/fix-457-typerror-on-py26Vincent Driessen2016-06-012-4/+5
|\ \ \ | | | | | | | | Fixes #457: 'TypeError: decode() takes no keyword arguments' on Python 2.6
| * | | Fixed 'TypeError: decode() takes no keyword arguments' on Python 2.6Andreas Maier2016-06-012-4/+5
|/ / /
* | | fix(test): do not skip test on travisSebastian Thiel2016-06-012-2/+0
| | | | | | | | | | | | | | | | | | | | | Please exclude the particular assertion instead. Related to https://github.com/gitpython-developers/GitPython/commit/a3f24f64a20d1e09917288f67fd21969f4444acd#commitcomment-17691581
* | | chore(compat): state py2.6 support officiallySebastian Thiel2016-06-012-0/+3
| | | | | | | | | | | | | | | | | | More information in the respective issue. Fixes #453
* | | Bump for new versionVincent Driessen2016-05-302-1/+6
| | |
* | | This is 2.0.52.0.5Vincent Driessen2016-05-301-1/+1
| | |
* | | Fix regexVincent Driessen2016-05-302-1/+6
| | | | | | | | | | | | | | | This catches the case where the matched line contains "(" or ")" characters.
* | | This is 2.0.42.0.4Vincent Driessen2016-05-301-1/+1
| | |
* | | Update changelogVincent Driessen2016-05-301-0/+3
| | |
* | | Merge pull request #456 from ↵Sebastian Thiel2016-05-303-3/+16
|\ \ \ | | | | | | | | | | | | | | | | gitpython-developers/fix-for-invalid-data-in-commits Add test case as example of Git commit with invalid data
| * | | Ignore invalid data when decoding commit objectsfix-for-invalid-data-in-commitsVincent Driessen2016-05-301-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | Previously, GitPython chokes on this while decoding. Rather than choking, instead accept the error and replace the invalid bytes by the � (\x80) char.
| * | | Add test case as example of Git commit with invalid dataVincent Driessen2016-05-302-0/+13
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | This is a real commit from the microjs.com open source project, see https://github.com/madrobby/microjs.com/commit/7e8457c17850d0991763941213dcb403d80f39f8, which is declared to be encoded in UTF-8, but contains invalid bytes. This makes GitPython choke on it while decoding. Rather than choking, this should instead accept the error and replace the invalid bytes by the � (\x80) char.
* | | Merge pull request #454 from ↵Sebastian Thiel2016-05-304-8/+31
|\ \ \ | | | | | | | | | | | | | | | | gitpython-developers/fix-octal-escaped-path-parser-bug Fix bug in diff parser output
| * | | Fix bug in diff parser outputfix-octal-escaped-path-parser-bugVincent Driessen2016-05-304-8/+31
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | The diff --patch parser was missing some edge case where Git would encode non-ASCII chars in path names as octals, but these weren't decoded properly. \360\237\222\251.txt Decoded via utf-8, that will return: 💩.txt
* | | Merge pull request #455 from gitpython-developers/fix-ci-testsVincent Driessen2016-05-301-5/+6
|\ \ \ | |/ / |/| | Skip test that always fails on Travis CI
| * | Skip test that always fails on Travis CIfix-ci-testsVincent Driessen2016-05-301-5/+6
|/ /
* | chore(remote): better super-class call syntaxSebastian Thiel2016-05-291-1/+1
| | | | | | | | | | | | Python :) !! Related to #451
* | chore(flake8): whitespace ...Sebastian Thiel2016-05-291-1/+1
| | | | | | | | | | | | Related to #451 Signed-off-by: Sebastian Thiel <byronimo@gmail.com>
* | Merge pull request #451 from barry-scott/pr-fix-callable-remote-progressSebastian Thiel2016-05-291-2/+2
|\ \ | | | | | | Fix traceback because _seen_ops is not initialised
| * | Fix traceback because _seen_ops is not initialisedBarry Scott2016-05-291-2/+2
|/ / | | | | | | must call the base class __init__
* | fix(remote): improve version checkSebastian Thiel2016-05-291-2/+2
| | | | | | | | | | | | | | | | | | | | | | | | | | Make version check much more readable, and fix it at the same time. The previous implementation would assume progress is supported just by looking at the patch-level for instance. A quick check of the git sources seems to indicate the --progress flag exists in v1.7 of the git command-line already. Fixes #449
* | fix(remote): Add CallableRemoteProgressSebastian Thiel2016-05-292-12/+22
| | | | | | | | | | | | That way, the base type doesn't need any adjustment. Related to #450
* | doc(changes): inform about new progress APISebastian Thiel2016-05-291-0/+3
| | | | | | | | Related to #450
* | chore(misc): cleanup and docsSebastian Thiel2016-05-294-34/+24
| | | | | | | | | | | | Minor adjustments to PR to match current code style. Related to #450
* | Merge pull request #450 from barry-scott/masterSebastian Thiel2016-05-293-10/+54
|\ \ | | | | | | The progress arg to push, pull, fetch and clone is now a python calla…