| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
| | |
|
|\ \
| | |
| | | |
Only gc.collect() under windows
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Under Windows, tempfile objects are holding references to open files
until the garbage collector closes them and frees them. Explicit
calls to gc.collect() were added to the finalizer for the Repo class
to force them to be closed synchronously. However, this is expensive,
especially in large, long-running programs. As a temporary measure
to alleviate the performance regression on other platforms, only
perform these calls when running under Windows.
Fixes #553
|
|/
|
|
| |
case eg pathlib.Path is passed
|
| |
|
|\
| |
| | |
worktrees: make non-packed refs also work correctly.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Turns out aec58a9 did the right thing for /packed/ refs, but didn't work
correctly on /unpacked/ refs. So this patch gives unpacked refs the
same treatment.
Without the fix here, the test added will cause this traceback:
======================================================================
ERROR: Check that we find .git as a worktree file and find the worktree
----------------------------------------------------------------------
Traceback (most recent call last):
File "/home/pjones/devel/github.com/GitPython/git/test/lib/helper.py", line 92, in wrapper
return func(self, path)
File "/home/pjones/devel/github.com/GitPython/git/test/test_repo.py", line 938, in test_git_work_tree_dotgit
self.assertIsInstance(repo.heads['aaaaaaaa'], Head)
File "/home/pjones/devel/github.com/GitPython/git/util.py", line 893, in __getitem__
raise IndexError("No item found with id %r" % (self._prefix + index))
IndexError: No item found with id 'aaaaaaaa'
Woops.
Things I've learned:
- test_remote doesn't work currently if you start on a branch. I think
it never did?
- Because of 346424da, all *sorts* of stuff in the test suite doesn't
work if you name your development branch "packed-refs"
(This seems like a bug...)
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|\ \
| | |
| | |
| | | |
Plazmaz-master
|
| | | |
|
| |/ |
|
|/ |
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This makes Repo("foo") work when foo/.git is a file of the form created
by "git worktree add", i.e. it's a text file that says:
gitdir: /home/me/project/.git/worktrees/bar
and where /home/me/project/.git/ is the nominal gitdir, but
/home/me/project/.git/worktrees/bar has this worktree's HEAD etc and a
"gitdir" file that contains the path of foo/.git .
Signed-off-by: Peter Jones <pjones@redhat.com>
|
|
|
|
| |
Fixes #610
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
| |
Git version 2.11.1+ introduced extra lines into the subsequent hunk
sections for incremental blame output. The documentation notes that
parsers of this output should ignore all lines between the start and end
for robust parsing.
|
|\
| |
| |
| | |
tbhartman-git_work_tree
|
| | |
|
|\ \
| |/
|/| |
Retrofit `repo` class as context-man to cleanup global mman on repo-delete
|
| |
| |
| |
| | |
Improve API for problems like #553.
|
| | |
|
|/
|
|
|
|
|
| |
As it does not appear to be the case.
See https://github.com/gitpython-developers/GitPython/issues/547#issuecomment-257270026
[skip ci]
|
|
|
|
| |
FIX #535 according to Byron's comment:
https://github.com/gitpython-developers/GitPython/issues/535#issuecomment-255522529
|
|\
| |
| |
| |
| |
| |
| | |
Conflicts:
git/repo/base.py
git/repo/fun.py
git/test/test_submodule.py
|
| |
| |
| |
| |
| |
| |
| | |
+ Expansion of paths also `osp.normalize()` them.
+ Make Repo-fields --> class-fields to avoid initializations on
construct.
+ Explain and rename `git.repo.fun.find_git_dir()` is for submodules
(`find_submodule_git_dir()`).
|
| |
| |
| |
| | |
+ Ignore "empty" GIT_DIR vars.
+ Improve documentation on the constructor `path` parameter.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
+ Decygpath sm's `.git` file contents.
+ Polish another path in `git add`; actually no main-code changes, just
a replace \-->/ on a relative(!) path to make cygwin-git to work.
- REGRESSION `test_git_submodules_and_add_sm_with_new_commit` asks for
user/email settings.
- Cygwin TCs failing:
- PY2: err: 2, fail: 1
- PY3: err: 2, fail: 1
|
| | |
|
| | |
|
| |
| |
| |
| |
| |
| | |
- Cygwin TCs failing:
- PY2: err: 13, fail: 2
- PY3: err: 12, fail: 2
|
| |
| |
| |
| |
| |
| | |
- Cygwin TCs failing:
- PY2: err: 13, fail: 3
- PY3: err: 12, fail: 3
|
|/
|
|
|
|
|
|
|
| |
+ Make `Git.polish_url()` convert paths into Cygwin-friendly paths.
+ Add utility and soe TCs for funcs for detecting cygwin and converting
abs-paths to `/cygdrive/c/...`.
- Cygwin TCs failing:
- PY2: err: 14, fail: 3
- PY3: err: 13, fail: 3
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ Parse most remote & config-urls \-->/.
+ Used relative daemon-paths.
+ Use git-daemon PORT above 10k; on Windows all below need Admin rights.
+FIXED git-daemon @with_rw_and_rw_remote_repo():
+ test_base.test_with_rw_remote_and_rw_repo() PASS.
+ test_remote.test_base() now freezes! (so still hidden win_err)
+ repo_test: minor finally delete test-repos created inside this repo.
+ util: delete unused `absolute_project_path()`.
|
|
|
|
| |
+ Do not abspath twice when contructing cloned repo.
+ Add `git.repo.base` logger.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ 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.
|
| |
|