| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
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…
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
|
|
|
|
| |
Wrap `git merge-base --is-ancestor` into its own function because it acts
as a boolean check unlike base `git merge-base call`
|
|
|
|
|
|
|
|
|
|
|
|
| |
* 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
|
| |
|
|
|
|
|
|
|
|
|
| |
revA..revB → 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
|
|
|
|
| |
Seems like OSX is somewhat special here ... .
|
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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 was adjusted as well to parse only a single file which simulates
stderr output.
|
|
|
|
|
|
| |
* 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.
|
|
|
|
|
|
|
| |
It shows that the previous implementation was never really working on
linux, and thus failed on travis as well for good reason.
Closes #303
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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).
|
|
|
|
|
|
|
|
|
|
|
| |
* config parser now handles quoted values correctly. This doesn't hamper
multi-line support.
* added regression test to travis to assure we will be warned if we
rewrite and break the user's .gitconfig file
* only rewrite configuration files if we actually called a mutating
method on the writer. Previously it would always rewrite it.
Fixes #285
|
|
|
|
|
| |
add a GIT_PYTHON_TEST_GIT_DAEMON_PORT to set a port other than 9418,
for example for when you already have a daemon running on that port.
|
|
|
|
|
|
|
|
|
|
|
|
| |
No reason to expose a daemon to all interfaces when it is only used for
tests, which connect to localhost anyway.
I'd love to use localhost here instead, but the git-daemon man page points out:
If IPv6 is not supported, then --listen=hostname is also not
supported and --listen must be given an IPv4 address.
I don't know of a way to check if git has ipv6 support, but 127.0.0.1
should be around for the foreseeable future
|
|
|
|
| |
It expected to see major version 0 though.
|
|\ |
|
| |
| |
| |
| |
| |
| | |
Also move untestable documentation out of test.
Related: #234, #242
|
| |
| |
| |
| | |
Related to #248
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Do not swallow non-zero exit status during push and fetch unless
we managed to parse head information.
This behaviour will effetively handle cases were no work was done
due to invalid refspecs or insufficient permissions.
Fixes #271
|
| |
| |
| |
| |
| |
| |
| |
| | |
When pushing/pulling, we ignore errors unless it's exit code 128.
The reason for this is now made explicit to make clear that issues
are handled by PushInfo flags accordingly.
Related #271
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
It turned out that the index is not actually corrupted, which is good
news. What happens is that `git` writes `TREE` extension data into the
index, which causes it to write out the given tree *as is* next time
a `git commit` is executed. When using `git add`, this extension data
is maintained automatically. However, GitPython doesn't do that ... .
Usually this is no problem at all, as you are supposed to use
`IndexFile.commit(...)` along with `IndexFile.add(...)`.
Thanks to a shortcoming in the GitPython API, the index was
automatically written out whenever files have been added, without
providing control over whether or not *extension data* will be
written along with it.
My fix consists of an additional flag in `IndexFile.add(...)`, which
causes extension data not to be written by default, so commits can be
safely done via `git commit` or `IndexFile.commit(...)`.
However, this might introduce new subtle bugs in case someone is
relying on extension data to be written. As this can be controlled
through the said flag though, a fix is easily done in that case.
Fixes #265
|
| |
| |
| |
| |
| | |
However, it doesn't reproduce on the latest version of GitPython.
Maybe it's on an older one.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
In repositories like
> git branch -a
* test
> ls
test
`repo.iter_commits` failed due to an ambigous argument
(`'git rev-list test`).
Now this cannot happen anymore.
fixes #264
|
|/
|
|
|
|
| |
While at it, all other invocations of .git in remote.py were reviewed
Fixes #262
|
|
|
|
| |
Latest version of it is required to show the issues travis shows as well
|
| |
|
| |
|
| |
|
|
|
|
|
|
| |
They are just skipped.
Fixes #249
|
|
|
|
|
|
|
| |
However, I kept information on how to achieve the same thing with
`custom_environment()` in the test.
Related to #234
|
|
|
|
|
|
| |
Unfortunately, installation of a executable script has proven to be so
difficult thanks setuptools gloriousness, which will force me to remove
that feature
|
|
|
|
|
|
| |
Hoping to make this significantly faster on travis.
Related to #245
|
|
|
|
|
|
|
|
|
| |
However, most tests fail for reasons unknown - SHA cannot be found.
For now, I will wait until someone complains, as I doubt too many people
will use it on windows.
Related to #244
|
|
|
|
|
|
|
|
| |
It verifies that the script is actually called.
Interestingly, the shell script version works within an msysgit environment
on windows.
Fixes #234
|
|\
| |
| |
| |
| |
| | |
Need latest master to proceed with test
Conflicts:
doc/source/tutorial.rst
|
| | |
|