summaryrefslogtreecommitdiff
path: root/git
Commit message (Collapse)AuthorAgeFilesLines
* Revert "fix(cmd): fixed deadlock when stderr buffer overflow"revert-357-autointerrupt_deadlock_fixSebastian Thiel2015-10-151-4/+4
|
* fix(cmd): fixed deadlock when stderr buffer overflowIvan Ryabchenko2015-10-151-4/+4
| | | | | | | 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)
* fix(remote): assure only repository configurationSebastian Thiel2015-09-061-1/+1
| | | | | | | Previously it was possible for it to pick up non-repository branch configuration, even though it was unlikely. Closes #350
* fix(config): ignore empty values in config fileSebastian Thiel2015-09-063-6/+25
| | | | | | | | | | | 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
* fix(compat): make test work with git >= 2.5Sebastian Thiel2015-08-291-0/+3
|
* fix(repo): fail loudly if worktrees are usedSebastian Thiel2015-08-293-10/+39
| | | | | | | | | | | | | | | 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
* fix(repo): use GitCmdObjectDB by defaultSebastian Thiel2015-08-222-6/+3
| | | | | | This should fix resource leaking issues once and for all. Related #304
* Merge pull request #341 from StyXman/masterSebastian Thiel2015-08-212-2/+2
|\ | | | | fix(cmd): make short options with arguments become two separate argum…
| * fix(test): update to changes.Marcos Dione2015-08-201-1/+1
| |
| * fix(cmd): make short options with arguments become two separate arguments ↵Marcos Dione2015-08-201-1/+1
| | | | | | | | for the executable.
* | fix(test_index): fix encodingSebastian Thiel2015-08-171-2/+2
| | | | | | | | | | | | | | | | | | | | 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
* | fix(commit): serialization timezone handlingSebastian Thiel2015-08-172-2/+2
| | | | | | | | | | | | | | | | | | 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
* | fix(tests): remove dependency on sort orderSebastian Thiel2015-08-081-1/+1
| | | | | | | | | | | | | | Now we select the submodule by name, not by index. The latter is not deterministic. Closes #335
* | tests(submodule): add new submodule commitsSebastian Thiel2015-08-081-1/+32
| | | | | | | | | | | | | | | | 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
* | fix(index):allow adding non-unicode paths to indexSebastian Thiel2015-07-292-2/+16
|/ | | | | | | | | 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
* fix(diff): mode-assertions now deal with 0Sebastian Thiel2015-07-292-2/+34
| | | | | | | | 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
* don't 'log' to stderr in `RemoteProgress`Sebastian Thiel2015-07-281-1/+0
| | | | | | There is simply no excuse to doing that. Closes #330
* Ensure file resources are releasedDavid García Garzón2015-07-261-17/+17
|
* gic {init,clone} --separate-git-dir is supported only since 1.7.5Julien Pivotto2015-07-221-1/+1
| | | | | Without this commit the update() function of a submodule does not work in CentOS 6.
* Implement is_ancestorSandy Carter2015-07-212-0/+29
| | | | | Wrap `git merge-base --is-ancestor` into its own function because it acts as a boolean check unlike base `git merge-base call`
* fix(flake8): remove unused importSebastian Thiel2015-07-201-1/+0
| | | | | | 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.
* fix(index): remove invalid keyword argumentSebastian Thiel2015-07-201-1/+1
| | | | | It was a left-over of some prior hacking that was not removed by accident.
* fix(encoding): in `untracked_files()`Sebastian Thiel2015-07-201-2/+9
| | | | | | | 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.
* fix(encoding): in untracked_files() and indexSebastian Thiel2015-07-204-17/+20
| | | | | | | | | | | | * 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
* Merge pull request #319 from jeblair/fixheadSebastian Thiel2015-07-181-6/+1
|\ | | | | Always add '--' to git reset
| * Always add '--' to git resetJames E. Blair2015-07-171-6/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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.
* | typo in submodules api documentationJulien Pivotto2015-07-171-1/+1
|/
* added tests for commits with datesavi2015-07-172-1/+13
|
* Added two extra paramaters for commit to take author date and commit dateavi2015-07-172-5/+13
|
* Correct doc errorsMarian Wieczorek2015-07-162-2/+2
| | | | | | | | | 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
* Fix typoTanner Netterville2015-07-151-1/+1
|
* fix(config): use `str.startswith('~')` instead of `'~' in str`Mihyaeru2015-07-061-1/+1
|
* fix(config): care tilde in include.path configMihyaeru2015-07-061-0/+2
|
* fix(travis): get py2.6 to workSebastian Thiel2015-07-031-1/+1
| | | | Seems like OSX is somewhat special here ... .
* fix(cmd): work with py3Sebastian Thiel2015-07-032-2/+7
| | | | | | 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.
* fix(cmd): don't open stdout when fetchingSebastian Thiel2015-07-034-96/+105
| | | | | | | 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
* test(git): remove unnecessary fixtureSebastian Thiel2015-07-032-5015/+12
| | | | | Test was adjusted as well to parse only a single file which simulates stderr output.
* test(remote): make assertion less verboseSebastian Thiel2015-07-031-2/+3
|
* fix(cmd): line parsingSebastian Thiel2015-07-034-68/+10101
| | | | | | * 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.
* Add env parameter to Repo.clone_from() for setting environment variablesJon Lund Steffensen2015-06-301-2/+6
| | | | | | | 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().
* Fix docstring of Repo.clone_from()Jon Lund Steffensen2015-06-291-0/+1
|
* fix(git-test): assure test does works on linuxSebastian Thiel2015-06-261-1/+2
| | | | | | | It shows that the previous implementation was never really working on linux, and thus failed on travis as well for good reason. Closes #303
* fix(index): handle adding symlinks to dirsSebastian Thiel2015-06-262-12/+27
| | | | | | | | | | 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
* fix(logging): monkeypatch logging with NullHandlerSebastian Thiel2015-06-261-0/+10
| | | | | This will make usage of the `NullHandler` possible in python 2.6 and below.
* Added NullHandlers to all loggers to preven "No handler" messagesJames Nowell2015-06-255-0/+5
| | | | | | | | When the code is run without setting up loggers, the loggers have no handlers for the emitted messages. The logging module displays: `No handlers could be found for logger "git.cmd"` on the console. By adding a NullHandler (a no-op) the message disappears, and doesn't affect logging when other handlers are configured.
* Merge pull request #291 from hvnsweeting/support-init-choosing-backendSebastian Thiel2015-06-101-2/+7
|\ | | | | support passing odbt for using with Repo
| * add docstring for new argHung Nguyen Viet2015-06-011-0/+5
| |
| * support passing odbt for using with RepoHung Nguyen Viet2015-06-011-2/+2
| |
* | fix(remote): assert fetch respec is setSebastian Thiel2015-06-102-0/+19
| | | | | | | | | | | | | | | | | | | | | | | | It turns out we can't deal do fetches if no refspec is set as git will change the format of the fetch return values, providing less information than usual. A test was added to show that such a case will fail, and an assertion will assure we don't attempt to fetch/pull if there is no refspec for 'fetch'. Closes #296
* | fix(test_git): handle `select.poll()` missingSebastian Thiel2015-06-101-6/+10
| | | | | | | | | | | | | | | | | | In that case, the handler for processing stdout and stderr of the git process is offloaded to threads. These currently don't return any exception they raise. We could easily fix this using an approach as shown [here](http://goo.gl/hnVax6).