| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
| |
+ Mark all unused vars and other non-pep8 (PyDev) warnings
+ test_utils:
+ enable & fix forgotten IterableList looped path.
+ unittestize all assertions.
+ remote: minor fix progress dispatching unknown err-lines
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ FIX TestRepo.test_submodule_update():
+ submod: del `.git` file prior overwrite; Windows denied otherwise!
+ FIX TestRepo.test_untracked_files():
+ In the `git add <file>` case, it failed with unicode args on PY2.
Had to
encode them with `locale.getpreferredencoding()` AND use SHELL.
+ cmd: add `shell` into `execute()` kwds, for overriding USE_SHELL per
command.
+ repo: replace blocky `communicate()` in `_clone()` with thread-pumps.
+ test_repo.py: unittestize (almost all) assertions.
+ Replace open --> with open for index (base and TC).
+ test_index.py: Enabled a dormant assertion.
|
|
|
|
|
|
| |
+ Modify lock/read-config-file code to ensure files closed.
+ Use `with GitConfigarser()` more systematically in TCs.
+ Clear any locks left hanging from prev Tcs.
+ Util: mark lock-files as SHORT_LIVED; save some SSDs...
|
|
|
| |
+ TCs: unittest-asserts for git-tests.
|
| |
|
|
|
|
|
|
|
| |
It's entirely untested if this repo still does the right thing,
but I'd think it does.
Fixes #504
|
| |
|
|\
| |
| | |
is_dirty supports path. Fixes #482.
|
| | |
|
|/
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
| |
Previously we could try to remove the branch we are on.
Of course, we have a test-case elaborate enough to verify we don't
destroy changes in submodules accidentally. Therefore I am confident
that this implementation is correct.
Fixes #49
|
|
|
|
|
|
|
|
|
|
|
|
| |
default.
Previously, the implementation would gladly reset new commits in submodules,
and/or reset a dirty working tree.
Now the new force_reset/force flag has to be specified explicitly to get back
to the old behaviour.
All submodule tests except for one are working.
|
|
|
|
|
| |
Fixes #235
[ci skip]
|
|
|
|
|
|
| |
A test verifies it's truly working.
Related to #238
|