| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
| |
Discovered that the remote module also relies on the git executable as
such it also needs to be “refreshed” anytime the git executable is
updated or changed. This was best solved by moving the setup function
into the top level __init__ where the setup simply calls
git.cmd.Git.refresh and git.remote.FetchInfo.refresh.
|
|
|
|
|
|
|
|
| |
Added one function (setup) and an alias (refresh simply calls setup).
These functions give the developer one more way to configure the git
executable path. This also allows the user to interactively adjust the
git executable configured during runtime as these functions dynamically
update the executable path for the entire git module.
|
| |
|
|\
| |
| | |
fix(cmd): checking process.DEVNUL were needlessly opening `os.devnull`
|
| |
| |
| |
| |
| |
| |
| | |
Fixes resource-leak warning on Windows Puython-3.5.3+:
D:\python-3.5.2.amd64\lib\site-packages\git\cmd.py:583: ResourceWarning:
unclosed file <_io.BufferedWriter name='nul'>
else getattr(subprocess, 'DEVNULL', open(os.devnull, 'wb')))
|
|\ \
| | |
| | | |
Retrofit `repo` class as context-man to cleanup global mman on repo-delete
|
| |/
| |
| | |
Apply codereview comments of #541.
|
|/
|
|
| |
Fixes #576
|
|\
| |
| | |
Fixes to support Python 2.6 again.
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Details:
- Added Python 2.6 again to .travis.yml (it was removed in commit 4486bcb).
- Replaced the use of dictionary comprehensions in `git/cmd.py` around
line 800 with the code before that change (in commit 25a2ebf).
Reason: dict comprehensions were introduced only in Python 2.7.
- Changed the import source for `SkipTest` and `skipIf` from `unittest.case`
to first trying `unittest` and upon ImportError from `unittest2`.
This was done in `git/util.py` and in several testcases.
Reason: `SkipTest` and `skipIf` were introduced to unittest only
in Python 2.7, and `unittest2` is a backport of `unittest` additions
to Python 2.6.
- In git/test/lib/helper.py, fixed the definition of `assertRaisesRegex`
to work on py26.
- For Python 2.6, added the `unittest2` dependency to `requirements.txt`
and changed `.travis.yml` to install `unittest2`. Because git/util.py
uses SkipTest from unittest/unittest2, the dependency could not be added
to `test-requirements.txt`.
- Fixed an assertion in `git/test/test_index.py` to also allow
a Python 2.6 specific exception message.
- In `is_cygwin_git()` in `git/util.py`, replaced `check_output()` with
`Popen()`. It was added in Python 2.7.
- Enabled Python 2.6 for Windows:
- Added Python 2.6 for MINGW in .appveyor.yml.
- When defining `PROC_CREATIONFLAGS` in `git/cmd.py`, made use of certain
win32 and subprocess flags that were introduced in Python 2.7, dependent
on whether we run on Python 2.7 or higher.
- In `AutoInterrupt.__del__()` in `git/cmd.py`, allowed for `os` not having
`kill()`. `os.kill()` was added for Windows in Python 2.7 (For Linux, it
existed in Python 2.6 already).
|
|/
|
|
|
|
|
|
| |
Interestingly only shows in particular python versions
on travis.
Maybe some caching effect?
Locally it is reproducible easily, with the latest flake8
|
|\
| |
| |
| | |
ankostis-cygwin
|
| |
| |
| |
| |
| |
| |
| |
| | |
+ Rework git-daemon launching with `with` resource-management.
+ cmd: add `is_cygwin` optional override kwd on `Git.polish_url()`.
- 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
|
| | |
|
| | |
|
|/ |
|
|
|
|
|
| |
+ Ignore `with_extended_output` arg when reaising the exception, keep
its behavior when `status==0`.
|
|
|
|
|
|
| |
+ Bug discovered after enabling TC in prev commit and rework of fetch.
+ remote_tc: unitestize assertions.
+ util: DEL unused `_mktemp()`.
|
|
|
|
|
|
| |
+ `handle_process_output()` accepts null-finalizer, to pump completely
stderr before raising any errors.
+ test: Enable `TestGit.test_environment()` on Windows (to checks stderr
consumption).
|
|
|
|
|
| |
+ cmd: use DEVNULL for non PIPEs; no open-file.
+ TCs: some unitestize-assertions on base & remote TCs.
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ 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.
|
|
|
| |
+ Collect all known commands
|
| |
|
|
|
|
| |
+ Unicode PY2/3 issues fixed also in pump stream func.
|
|
|
|
|
| |
+ No WindowsError exception.
+ Add `test_exc.py` for unicode issues.
+ Single-arg for decoding-streams in pump-func.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
+ CAUSE: In Windows, Diffs freeze while reading Popen streams,
probably buffers smaller; good-thin(TM) in this case because reading a
Popen-proc from the launching-thread freezes GIL. The alternative to
use `proc.communicate()` also relies on big buffers.
+ SOLUTION: Use `cmd.handle_process_output()` to consume Diff-proc
streams.
+ Retroffited `handle_process_output()` code to support also
byte-streams, both Threading(Windows) and Select/Poll (Posix) paths
updated.
- TODO: Unfortunately, `Diff._index_from_patch_format()` still slurps
input; need to re-phrase header-regexes linewise to resolve it.
|
|
|
|
|
| |
+ Stop using gitdb's respective helper.
+ Fix files chmod(555) which CANNOT DELETE on Windows (but do on Linux).
|
|
|
| |
+ TCs: unittest-asserts for git-tests.
|
|
|
|
|
|
|
| |
+ Simplify call_process, no win-code case, no `make_call()` nested func.
+ Del needless WinError try..catch, in `_call_process()` already
converted as GitCommandNotFound by `execute()`.
+ pyism: kw-loop-->comprehension, facilitate debug-stepping
|
|
|
|
|
|
|
|
|
|
|
| |
+ see
http://help.appveyor.com/discussions/problems/5334-nosetests-finsih-bu-build-stuck-and-next-job-dealys-to-start
+ Use `io.DEFAULT_BUFFER_SIZE`.
+ test_commit: replace asserts with unittest-asserts.
- TRY Popen() NO universal_newlines: NO, reverted in next commits.
+
[travisci skip]
|
| |
|
|
|
|
|
| |
+ FIXED most hangs BUT no more `git-daemon` un-killable!
+ Use logger for utils to replace stray print().
|
| |
|
|
|
|
|
|
|
|
| |
+ The code in `_read_lines_from_fno()` was reading the stream only once
per invocation, so when input was larger than `mmap.PAGESIZE`, bytes
were forgotten in the stream.
+ Replaced buffer-building code with iterate-on-file-descriptors.
+ Also set deamon-threads.
|
|
|
|
| |
+ Del extra spaces, import os.path as osp
|
|
|
|
|
|
|
| |
It's entirely untested if this repo still does the right thing,
but I'd think it does.
Fixes #504
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This fixes a UI problem with using GitPython from a GUI python probgram.
Each repo that is opened creates a git cat-file processs and that provess will create
a console window with out this change.
|
| |
|
| |
|
|
|
|
|
|
|
|
|
| |
Just went through all changes and adjusted them to the best of my
abilities. As there are no tests to claim otherwise, I believe
this is correct enough.
However, it becomes evident that it's no longer possible to just
make changes without backing them with a respective test.
|
|
|
| |
Convert to the expected bytes.
|
| |
|