aboutsummaryrefslogtreecommitdiff
AgeCommit message (Collapse)Author
2016-04-19Make diff patch parsing more reliableVincent Driessen
The a_path and b_path cannot reliably be read from the first diff line as it's ambiguous. From the git-diff manpage: > The a/ and b/ filenames are the same unless rename/copy is involved. > Especially, **even for a creation or a deletion**, /dev/null is not > used in place of the a/ or b/ filenames. This patch changes the a_path and b_path detection to read it from the more reliable locations further down the diff headers. Two use cases are fixed by this: - As the man page snippet above states, for new/deleted files the a or b path will now be properly None. - File names with spaces in it are now properly parsed. Working on this patch, I realized the --- and +++ lines really belong to the diff header, not the diff contents. This means that when parsing the patch format, the --- and +++ will now be swallowed, and not end up anymore as part of the diff contents. The diff contents now always start with an @@ line. This may be a breaking change for some users that rely on this behaviour. However, those users could now access that information more reliably via the normal Diff properties a_path and b_path now.
2016-04-19Merge pull request #411 from nvie/enrich-incremental-blame-outputVincent Driessen
Enrich incremental blame output
2016-04-19Merge remote-tracking branch 'upstream/master' into ↵Vincent Driessen
enrich-incremental-blame-output
2016-04-19Merge pull request #408 from nvie/masterVincent Driessen
Add support for diffing against root commit
2016-04-19Merge remote-tracking branch 'upstream/master'Vincent Driessen
2016-04-19Remove Python 2.6 hackVincent Driessen
Since support was dropped.
2016-04-19feat(py-support): drop py2.6 supportSebastian Thiel
In response to https://github.com/gitpython-developers/GitPython/pull/408/files/5de21c7fa2bdd5cd50c4f62ba848af54589167d0..aae2a7328a4d28077a4b4182b4f36f19c953765b#r59722704
2016-04-14Perform diff-tree recursively to have the same output as diffVincent Driessen
2016-04-14Return all available data from git-blameVincent Driessen
Returning this now to avoid having to change the function's return value structure later on if we want to emit more information.
2016-04-14Drop dependency on sixVincent Driessen
2016-04-14Drop dependency on sixVincent Driessen
2016-04-14Fix test casesVincent Driessen
2016-04-14Export NULL_TREEVincent Driessen
2016-04-14Update changelog for next releaseVincent Driessen
2016-04-14Use a special object rather than a stringVincent Driessen
This alternative API does not prevent users from using the valid treeish "root".
2016-04-14Fix commentVincent Driessen
2016-04-14Support "root" as a special value in .diff() callsVincent Driessen
This enabled getting diff patches for root commits.
2016-04-14Add Python 3.5 envVincent Driessen
2016-04-14Pass through the $HOME env var to the tox envVincent Driessen
2016-04-14Merge pull request #402 from rrei/masterSebastian Thiel
Remove assertion over fetch refspec when explicitly specified Fixes #396
2016-04-14Merge pull request #409 from nvie/add-incremental-blame-supportSebastian Thiel
Add incremental blame support
2016-04-14Merge pull request #410 from ppietrasa/masterSebastian Thiel
fix(index): avoid recursing endlessly in add()
2016-04-13fixed unittest of issue #407 for Python3Piotr Pietraszkiewicz
2016-04-13fix(index): avoid recursing endlessly in add()Piotr Pietraszkiewicz
Issue #407
2016-04-13Allow passing args to git-blameVincent Driessen
This can be used to pass options like -C or -M.
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.
2016-04-10Merge pull request #405 from nvie/masterSebastian Thiel
Make sure .read() and friends always return bytes
2016-04-07Fix testsVincent Driessen
2016-04-06Make sure .read() and friends always return bytesVincent Driessen
2016-04-04Merge pull request #404 from graingert/patch-1Sebastian Thiel
Support universal wheels
2016-04-04Support universal wheelsThomas Grainger
2016-03-29Remove assertion over fetch refspec when explicitly specifiedrrei
2016-03-28fix(remote): asssertion message formattingSebastian Thiel
Related to #396
2016-03-28fix(refs): don't raise StopIterationSebastian Thiel
Fixes #394
2016-03-16Merge pull request #398 from gitprime/masterSebastian Thiel
Split diff line by '\t' for metadata and path
2016-03-16Add test and fixture for diff index from raw formatJonathan Chu
This tests the edge case of doing a diff against a single whitespace filename and returns the proper change type. All other normal usage of this diff classmethod should remain unchanged.
2016-03-15Split diff line by '\t' for metadata and pathJonathan Chu
This protects against `.split(None)` which uses consecutive whitespace as a separator to overlook paths where a single space is the filename. For example, in this diff line: line = ':100644 000000 e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 0000000000000000000000000000000000000000 D ' The deleted file is a file named ' ' (just one space). It's entirely possible to commit this, remove, and to produce the following output from `git diff`: git diff --name-status <SHA1> <SHA2> D M path/to/another/file.py ... This would cause the initial `.split(None, 5)` to fail as it will count all consecutive whitespace as a separator, disregarding the ' ' (single space) filename.
2016-03-15Merge pull request #397 from wagnermarkd/patch-1Sebastian Thiel
Fix it's vs its in tutorial.rst
2016-03-14Fix it's vs its in tutorial.rstMark Wagner
2016-03-06Merge pull request #391 from pendragon-/parser_context_reenterSebastian Thiel
config parsers as context mangers can now be reentered for locks
2016-03-06config parsers as context mangers can now be reentered for locksRaphael Boidol
2016-02-25Merge pull request #389 from csnover/csnover-buffer-readsSebastian Thiel
fix(cmd): Use buffered reads
2016-02-25Merge pull request #385 from yarikoptic/skip-testSebastian Thiel
ENH: skip test_is_ancestor on git versions < 1.8.0 not supporting git merge-base --is-ancestor
2016-02-24fix(cmd): Use buffered readsColin Snover
Popen defaults to using unbuffered reads, which are extremely slow.
2016-02-20chore(requirements): update to actually required versionSebastian Thiel
2016-02-20Merge pull request #388 from pendragon-/config_as_context_managerSebastian Thiel
feat(config-parsers): enable config parsers to be used as context managers
2016-02-20enable config parsers to be used as context managersRaphael Boidol
if used as context managers, the parsers will automatically release their file locks.
2016-02-14ENH: skip test_is_ancestor on git versions < 1.8.0 not supporting git ↵Yaroslav Halchenko
merge-base --is-ancestor
2016-02-14fix(cmd): allow improved errors during clone operationSebastian Thiel
Related to #383
2016-02-13fix(cmd): focus !Sebastian Thiel
Thanks travis, once again !