| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|/
|
|
|
|
|
|
|
|
| |
That way, we will not only get the summary line
contained in the blame, but fetch the full message.
This is more costly than the previous implementation
allowed it to be, but being less surprising/correct
certainly is the preferred behaviour here.
Fixes #485
|
|
|
|
|
|
|
| |
This issue must have rosen from `to_progress_instance()`
being inserted in a spot where `None` was a legit value.
Fixes #462
|
|
|
|
|
|
| |
Minor adjustments to PR to match current code style.
Related to #450
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This simplifies the API and removes the parser, RemoteProgres,
from the API as RemoteProgress is an internal detail of the implementation.
progress is accepted as:
* None - drop progress messages
* callable (function etc) - call the function with the same args as update
* object - assume its RemoteProgress derived as use as before
RemoteProgress takes an optional progress_function argument.
It will call the progress function if not None otherwise call self.update
as it used to.
|
| |
|
| |
|
|
|
|
|
|
| |
Opt to split lines by the new line character instead of letting
`splitlines()` do this. This helps catch the issue when there are
special characters in the line, particular the commit summary section.
|
|
|
|
| |
Fixes #430
|
|
|
|
| |
Fixes #428
|
|
|
|
|
| |
Returning this now to avoid having to change the function's return value
structure later on if we want to emit more information.
|
| |
|
|
|
|
| |
This can be used to pass options like -C or -M.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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.
|
|
|
|
| |
if used as context managers, the parsers will automatically release their file locks.
|
|
|
|
| |
Related to #383
|
|
|
|
|
|
| |
Previously, it could have happened that pipes ran full, deadlocking the operation
Related to #72
|
|
|
|
|
|
| |
This should fix resource leaking issues once and for all.
Related #304
|
|
|
|
|
| |
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.
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
| |
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().
|
| |
|
|\
| |
| | |
support passing odbt for using with Repo
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
* renamed `consider_submodules` to `submodules` to be in line with the
existing parameters. Nowadays I would prefer the `consider_` prefix,
but can't change the existing API and thus stick to the current
naming scheme.
* reduced amount of code in one portion to make it more maintainable.
Related to #294
|
|/
|
|
|
|
| |
There are cases when might not consider a directory dirty when a submodule has
changes. Particular case was git-up stashing changes where submodules are
irrelevant.
|
|
|
|
| |
Related to #255
|
|
|
|
|
|
|
|
| |
It verifies that the script is actually called.
Interestingly, the shell script version works within an msysgit environment
on windows.
Fixes #234
|
|
|
|
|
|
| |
That way they are protected from regression.
Fixes #239
|
|
|
|
|
|
| |
GIT_PYTHON_TRACE would actually fail (now) if we debugged archive operations.
Related to #239
|
|
|
|
|
| |
Fixes #235
[ci skip]
|
|
|
|
|
|
| |
A test verifies it's truly working.
Related to #238
|
|
|
|
|
|
| |
This also means that now we seem to be able to properly handle .git files in submodules
Related to #233
|
|
|
|
| |
A simple test verifies this at least.
|
|
|
|
|
|
| |
Fixes #7
[ci skip]
|
|
|
|
|
|
|
| |
This allows sub-trees to be archived as well, and makes `.archive()`
feature complete.
Fixes #67
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We implement it as described in this article:
http://stackoverflow.com/questions/1557183/is-it-possible-to-include-a-file-in-your-gitconfig
Thus we handle
* cycles
* relative and absolute include paths
* write-backs in case of writable GitConfigParser instances
Fixes #201
|
|
|
|
| |
Fixes #169
|
|
|
|
|
|
|
|
|
| |
required afterall.
Turns out that the now removed `read_gitfile` functions applied os.path.realpath which caused
the issue described in #224.
Fixes #224
|
|
|
|
|
|
|
|
|
| |
index related work.
That way, we don't try to compare a real-path to a non-real one, which would make the implementation think
a file is not actually part of the repository.
Fixes #224
|
|
|
|
|
|
|
| |
For some reason, I didn't trust the existing one as it tests that code
more indirectly.
Related to #160
|
|
|
|
|
|
|
| |
The point is that XDG_CONFIG_HOME is meant to point at the '.config' directory,
whereas '.config' has to be added only if HOME is used instead.
Fixes #160
|
|
|
|
| |
Fixes #160
|
|
|
|
|
|
| |
general.
Fixes #83
|
|
|
|
|
|
|
|
| |
Now by default, we will not walk up the directory structure and possibly find
git directories that the user didn't intend to find.
If required, that kind of behaviour can be turned back on.
Fixes #65
|
|
|
|
| |
Fixes #74
|
|
|
|
|
|
|
|
| |
Apparently, thanks to an incorrect version check, PY3 ended up using
a git command object database by default. This is now fixed.
Additionally, the update_cache code was adjusted to check for method-existence,
as it's valid to use object databases which simply don't have a
caching mechanism (like the git command object database)
|