| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| |
| |
| |
| | |
Thanks travis, once again !
|
|/
|
|
| |
Fixes #383
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
| |
Previously, it could have happened that pipes ran full, deadlocking the operation
Related to #72
|
| |
|
|
|
|
|
| |
signal.SIGKILL is not available on Windows so use signal.SIGTERM as a backup
when SIGKILL is not available.
|
|
|
|
|
|
| |
For more information, see CHANGES.rst
Fixes #369
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
| |
[skip ci]
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
| |
Closes #330
|
|
|
|
| |
Related to #362
|
|\
| |
| | |
Include 'timeout' parameter in Git execute
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| | |
Specify that this feature is not supported on Windows and
mention about the negative side-effects of SIGKILL on a
repository.
Change-Id: Ibba2c3f51f84084b4637ae9aaafa87dd84000ef4
|
| |
| |
| |
| | |
Change-Id: I8ab3d5affb3f040dd9630687fb20aedbd7510070
|
| |
| |
| |
| |
| |
| |
| | |
If the timeout is not specified, we don't need the overhead of
creating a watchdog and event.
Change-Id: I53ff891af24d4c27fb16bf4bb35910dd1d19d238
|
| |
| |
| |
| | |
Change-Id: I2e081c606b75b7f8d3d1ee82d93c3d9f3bdcfcbe
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
|
| |
| |
| |
| | |
Related to #357
|
| | |
|
|/
|
|
|
|
|
| |
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)
|
|
|
|
|
|
|
| |
Previously it was possible for it to pick up non-repository
branch configuration, even though it was unlikely.
Closes #350
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
This should fix resource leaking issues once and for all.
Related #304
|
|\
| |
| | |
fix(cmd): make short options with arguments become two separate argum…
|
| | |
|
| |
| |
| |
| | |
for the executable.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |
| |
| |
| |
| |
| |
| | |
Now we select the submodule by name, not by index. The latter is not
deterministic.
Closes #335
|
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|/
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
| |
There is simply no excuse to doing that.
Closes #330
|
| |
|
|
|
|
|
| |
Without this commit the update() function of a submodule does not work
in CentOS 6.
|
|
|
|
|
| |
Wrap `git merge-base --is-ancestor` into its own function because it acts
as a boolean check unlike base `git merge-base call`
|
|
|
|
|
|
| |
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.
|
|
|
|
|
| |
It was a left-over of some prior hacking that was not removed by
accident.
|
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
|\
| |
| | |
Always add '--' to git reset
|