aboutsummaryrefslogtreecommitdiff
path: root/git
AgeCommit message (Collapse)Author
2016-04-14Support "root" as a special value in .diff() callsVincent Driessen
This enabled getting diff patches for root commits.
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-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-07Fix testsVincent Driessen
2016-04-06Make sure .read() and friends always return bytesVincent Driessen
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-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-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-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 !
2016-02-13fix(cmd): safely read from stderrSebastian Thiel
Fixes #383
2016-02-11fix(refs): set fixture different versionSebastian Thiel
2016-02-11chore(version): set to next patch releaseSebastian Thiel
2016-02-07fix(cmd): prevent deadlock on clone/fetch/pullSebastian Thiel
We keep stdout closed, which seems to have the side-effect of stdout being connected to your TTY, in case you run a terminal. However, this shold also prevent deadlocks, as only stderr is used. The alternative would have been to try to fetch lines concurrently, and we have been there. For clone(), `communicate()` is used, and with some luck this will just do the right thing. Even though last time I checked, it didn't ... ? Lets see. Stab at #72
2016-02-07chore(flake8): unnused importSebastian Thiel
2016-02-07fix(clone): call communicate if there is no progress handlerSebastian Thiel
Previously, it could have happened that pipes ran full, deadlocking the operation Related to #72
2016-01-08DOC: minor typosYaroslav Halchenko
2015-12-21Fixed a non-Windows importAshley Whetter
signal.SIGKILL is not available on Windows so use signal.SIGTERM as a backup when SIGKILL is not available.
2015-12-14fix(tree): remove Tree.cache - use IndexFile.write_tree() insteadSebastian Thiel
For more information, see CHANGES.rst Fixes #369
2015-12-14fix(tree): show that fixing Tree.cache is not possibleSebastian Thiel
The problem is that a per-tree modification API cannot work properly, as the sorting is based on full paths of all entries within the repository. This feat can only be achieved by the index, which to my knowledge already does it correctly. The only fix is to remove the misleading API entirely, which will happen in the next commit. Related to #369
2015-12-13chore(tree): remove dead codeSebastian Thiel
[skip ci]
2015-12-13fix(tree): tree item sort now uses git-styleSebastian Thiel
Previously it was possible to generate trees which didn't appear legit to git as gitpython's sorting was a simple alpha-numeric sort. Git uses one that minimizes literal string comparisons though, and thus behaves slightly differently sometimes. Fixes #369
2015-12-02Forgot to update _num_op_codesThibault Clerice
2015-12-02Added CHECKING_OUT as a logged operationThibault Clerice
Closes #330
2015-11-08fix(commit): respect daylight saving when computing utc-offsetSebastian Thiel
Related to #362
2015-10-16Merge pull request #354 from dpursehouse/execute-timeoutSebastian Thiel
Include 'timeout' parameter in Git execute
2015-10-15fix(cmd): remove unused importSebastian Thiel
2015-10-15doc(cmd): make sure people know wait() may blockSebastian Thiel
Related to #357
2015-10-15Revert "fix(cmd): fixed deadlock when stderr buffer overflow"revert-357-autointerrupt_deadlock_fixSebastian Thiel
2015-10-15fix(cmd): fixed deadlock when stderr buffer overflowIvan Ryabchenko
Fixed deadlock when using stderr=PIPE in Popen and Git generates enough output to a pipe such that it blocks waiting for the OS pipe buffer to accept more data (see https://docs.python.org/2/library/subprocess.html#subprocess.Popen.wait)
2015-10-13Run os.kill for all child pids even after some of them are downOswin Nathanial
Right now, we come out of the iteration in case of failure while trying to kill a child pid. This may result in some of the child pids staying alive. Change-Id: I18d58fcefec2bbdae4ae9bf73594939ade241b52
2015-10-13Update docstring for 'kill_after_timeout' parameterOswin Nathanial
Specify that this feature is not supported on Windows and mention about the negative side-effects of SIGKILL on a repository. Change-Id: Ibba2c3f51f84084b4637ae9aaafa87dd84000ef4
2015-10-13Rename execute param 'timeout' to 'kill_after_timeout'Oswin Nathanial
Change-Id: I8ab3d5affb3f040dd9630687fb20aedbd7510070
2015-10-09Only create watchdog and event if timeout is specified in execute commandOswin Nathanial
If the timeout is not specified, we don't need the overhead of creating a watchdog and event. Change-Id: I53ff891af24d4c27fb16bf4bb35910dd1d19d238
2015-10-09Raise exception when timeout is used in execute command on WindowsOswin Nathanial
Change-Id: I2e081c606b75b7f8d3d1ee82d93c3d9f3bdcfcbe
2015-09-28Include 'timeout' parameter in Git executeOswin Nathanial
This feature enables to set a timeout while executing a git command. After this timeout is over, the process will be killed. If not explicitly specified, the default functionality will not be affected. Change-Id: I2dd5f0de7cb1f5f1b4253dd7ce92d23551d5f9a7
2015-09-06fix(remote): assure only repository configurationSebastian Thiel
Previously it was possible for it to pick up non-repository branch configuration, even though it was unlikely. Closes #350
2015-09-06fix(config): ignore empty values in config fileSebastian Thiel
Similar to git, we now ignore options which have no value. Previously it would not handle it consistently, and throw a parsing error the first time the cache was built. Afterwards, it was fully usable though. Now we specifically check for the case of no-value options instead. Closes #349