aboutsummaryrefslogtreecommitdiff
path: root/git
AgeCommit message (Collapse)Author
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
2015-08-29fix(compat): make test work with git >= 2.5Sebastian Thiel
2015-08-29fix(repo): fail loudly if worktrees are usedSebastian Thiel
As GitPython is in maintenance mode, there will be no new features. However, I believe it's good idea to explicitly state we do not support certain things if this is the case. Therefore, when worktrees are encountered, we will throw an specific exception to indicate that. The current implementation is hacky to speed up development, and increases the risk of failing due to false-positive worktree directories. Related to #344
2015-08-22fix(repo): use GitCmdObjectDB by defaultSebastian Thiel
This should fix resource leaking issues once and for all. Related #304
2015-08-21Merge pull request #341 from StyXman/masterSebastian Thiel
fix(cmd): make short options with arguments become two separate argum…
2015-08-20fix(test): update to changes.Marcos Dione
2015-08-20fix(cmd): make short options with arguments become two separate arguments ↵Marcos Dione
for the executable.
2015-08-17fix(test_index): fix encodingSebastian Thiel
I really never want to touch python again, and never deal with py2/3 unicode handling anymore. By now, it seems pretty much anything is better. Is python to be blamed for it entirely ? Probably not, but there are better alternatives. Nim ? Rust ? Ruby ? Totally
2015-08-17fix(commit): serialization timezone handlingSebastian Thiel
Previously timezones which were not divisable by 3600s would be parsed correctly, but would serialize into a full hour, rounded up. Now floating point computation is used which fixes the issue. Related to #336
2015-08-08fix(tests): remove dependency on sort orderSebastian Thiel
Now we select the submodule by name, not by index. The latter is not deterministic. Closes #335
2015-08-08tests(submodule): add new submodule commitsSebastian Thiel
It's somewhat more complex to add new commits in submodules to the parent repository. The new test shows how to do that in a 'GitPythonic' way. Related to #335
2015-07-29fix(index):allow adding non-unicode paths to indexSebastian Thiel
This issue only surfaced in python 2, in case paths containing unicode characters were not actual unicode objects. In python 3, this was never the issue. Closes #331
2015-07-29fix(diff): mode-assertions now deal with 0Sebastian Thiel
If the file was not present, the mode seen in a diff can be legally '0', which previously caused an assertion to fail for no good reason. Now the assertion tests for None instead. Closes #323
2015-07-28don't 'log' to stderr in `RemoteProgress`Sebastian Thiel
There is simply no excuse to doing that. Closes #330
2015-07-26Ensure file resources are releasedDavid García Garzón
2015-07-22gic {init,clone} --separate-git-dir is supported only since 1.7.5Julien Pivotto
Without this commit the update() function of a submodule does not work in CentOS 6.
2015-07-21Implement is_ancestorSandy Carter
Wrap `git merge-base --is-ancestor` into its own function because it acts as a boolean check unlike base `git merge-base call`
2015-07-20fix(flake8): remove unused importSebastian Thiel
I knew that flake would eventually get me, especially when least suspected. This time it's even useful, as it is a non-whitespace related issue.
2015-07-20fix(index): remove invalid keyword argumentSebastian Thiel
It was a left-over of some prior hacking that was not removed by accident.
2015-07-20fix(encoding): in `untracked_files()`Sebastian Thiel
I have no idea why PY3 requires such a mess of encoding/decoding statements, but let's just be happy it works. Also let's be sure I never ever write python code again ... EVER.
2015-07-20fix(encoding): in untracked_files() and indexSebastian Thiel
* untracked_files could, if there were spaces in the path returned, re-rencode the previously decoded unicode string thanks to a `decode("string_escape")` call. Now re-encode into utf-8 afterwards - added test to assure this works indeed * IndexFile.add() didn't handle unicode correctly and would write broken index files. The solution was to compute the path length after encoding it into utf-8 bytes, not before ... . Closes #320
2015-07-18Merge pull request #319 from jeblair/fixheadSebastian Thiel
Always add '--' to git reset
2015-07-17Always add '--' to git resetJames E. Blair
If a git repo has the misfortune to have a file with the name "HEAD" at the root level of the repo, git will return an error because it is unsure whether the file or ref is meant: File "/usr/local/lib/python2.7/dist-packages/git/refs/head.py", line 81, in reset self.repo.git.reset(mode, commit, add_arg, paths, **kwargs) File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 440, in <lambda> return lambda *args, **kwargs: self._call_process(name, *args, **kwargs) File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 834, in _call_process return self.execute(make_call(), **_kwargs) File "/usr/local/lib/python2.7/dist-packages/git/cmd.py", line 627, in execute raise GitCommandError(command, status, stderr_value) GitCommandError: 'git reset --hard HEAD' returned with exit code 128 stderr: 'fatal: ambiguous argument 'HEAD': both revision and filename Use '--' to separate filenames from revisions' Implement its suggested fix by always passing '--' as an argument to "git reset". It is fine to pass it with no file specifiers afterwords. In that case, git knows that "HEAD" is always meant as the ref.
2015-07-17typo in submodules api documentationJulien Pivotto
2015-07-17added tests for commits with datesavi
2015-07-17Added two extra paramaters for commit to take author date and commit dateavi
2015-07-16Correct doc errorsMarian Wieczorek
revA..revB &rarr; revA...revB (three instead of two dots) [base.py, line 467](https://github.com/gitpython-developers/GitPython/blob/master/git/repo/base.py#L467) rorepo is a ~~a~~ Repo instance [test_docs.py, line 21](https://github.com/gitpython-developers/GitPython/blob/master/git/test/test_docs.py#L21) closes #314
2015-07-15Fix typoTanner Netterville
2015-07-06fix(config): use `str.startswith('~')` instead of `'~' in str`Mihyaeru
2015-07-06fix(config): care tilde in include.path configMihyaeru
2015-07-03fix(travis): get py2.6 to workSebastian Thiel
Seems like OSX is somewhat special here ... .
2015-07-03fix(cmd): work with py3Sebastian Thiel
Fixed additional test which seems to have different outcomes depending on the interpreter. This just makes it work withouth attempting to find the root cause of the issue.
2015-07-03fix(cmd): don't open stdout when fetchingSebastian Thiel
This allows us to use the main thread to parse stderr to get progress, and resolve assertion failures hopefully once and for all. Relates to #301
2015-07-03test(git): remove unnecessary fixtureSebastian Thiel
Test was adjusted as well to parse only a single file which simulates stderr output.
2015-07-03test(remote): make assertion less verboseSebastian Thiel
2015-07-03fix(cmd): line parsingSebastian Thiel
* Previously we could fail to parse the last line within a read buffer, which is now fixed. * Added a test to verify our *slow* line parsing works as expected.
2015-06-30Add env parameter to Repo.clone_from() for setting environment variablesJon Lund Steffensen
Adds the optional keyword parameter env to Repo.clone_from(). The parameter is a dictionary containing the desired environment variables for the git clone invocation. The environment is applied to the temporary Git instance before calling Repo._clone().
2015-06-29Fix docstring of Repo.clone_from()Jon Lund Steffensen
2015-06-26fix(git-test): assure test does works on linuxSebastian Thiel
It shows that the previous implementation was never really working on linux, and thus failed on travis as well for good reason. Closes #303
2015-06-26fix(index): handle adding symlinks to dirsSebastian Thiel
When expanding directories, check if it is a symlink and don't expand them at all. Previously, we followed symlinks and expanded their contents, which could lead to weird index files. Fixes #302