summaryrefslogtreecommitdiff
path: root/git
Commit message (Collapse)AuthorAgeFilesLines
...
* Win, hook, #519: Consume Hook Popen-proc out of GILKostis Anagnostopoulos2016-09-285-108/+124
| | | | | | | | + HookException thrown on Popen, and were missed on Windows. + No SHELL on Popen?? + Minor fixes: + Try harder to delete trees - no remorses. + Simplify exception reprs. + Unittest-ize test_index assertions.
* io, dif: #519: FIX DIFF freeze when reading from GILKostis Anagnostopoulos2016-09-283-88/+105
| | | | | | | | | | | | | | | + 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.
* test: Start using `ddt` library for TCsKostis Anagnostopoulos2016-09-281-12/+16
| | | | | + DataDriven TCs for identifying which separate case failed. + appveyor: rework matrix, conda3.4 cannot install in develop mode
* Win, #519: FIX with_rw_directory() to remove read-only dirsKostis Anagnostopoulos2016-09-2814-49/+69
| | | | | + Stop using gitdb's respective helper. + Fix files chmod(555) which CANNOT DELETE on Windows (but do on Linux).
* TCs: unittestize many test-docs assertionsKostis Anagnostopoulos2016-09-281-29/+29
|
* Win, #519: Ensure fixtures & bashscript checked-out eol=lfKostis Anagnostopoulos2016-09-282-3/+3
| | | | + FIX all Diff TCs.
* src: constify is_<platform>() callsKostis Anagnostopoulos2016-09-2813-52/+45
| | | + TCs: unittest-asserts for git-tests.
* PY2, #519: FIX GitCommandError.tostr() encoding issueKostis Anagnostopoulos2016-09-282-14/+22
| | | | + PY3 means "PY3 or later" (TODO: fix also for *gitdb* project).
* Win, #519: Remove `git.cmd` failback - no longer exists.Kostis Anagnostopoulos2016-09-281-54/+15
| | | | | | | + 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
* Win, #519: FIX undead Git-daemon on WindowsKostis Anagnostopoulos2016-09-283-10/+31
| | | | | | | | | | | + On MINGW-git, daemon exists but if invoked as 'git daemon', DAEMON CANNOT DIE! + So, launch `git-daemon` on Apveyor, but - remote TCs fail due to paths problems. + Updated README instructions on Windows. + Restore disabled remote TCs on Windows. + Disable failures on daemon-tests only the last moment (raise SkipTest) so when ready, it will also pass.
* test, #519: No remote TCs, git-daemon cannot die@!Kostis Anagnostopoulos2016-09-282-2/+5
|
* test, #519: Try appveyor advice for never-ending buildsKostis Anagnostopoulos2016-09-285-49/+52
| | | | | | | | | | | + 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]
* src, #519: Improve daemon launch so Win does not stuckKostis Anagnostopoulos2016-09-271-31/+38
| | | | | | | + Retrofit try...finally blocks to ensure killing the daemon - now vulnerable also on Windows due to Popen() + CREATE_NEW_PROCESS_GROUP - BUT `test_base.test_with_rw_remote_and_rw_repo()` TC fails in MINGW due to invalid remote-URL in fetching-repo's config. Another day. - NEXT FREEZE to solve: test-diff_interface() under MINGW!
* src, #519: collect all is_<platform>() callsKostis Anagnostopoulos2016-09-2714-47/+66
|
* win, #519: proc.terminate() instead of kill(SIGTERM)Kostis Anagnostopoulos2016-09-262-39/+41
| | | + test_diff: replace asserts with unittest-asserts.
* Win, #519: FIX WinHangs: Popen() CREATE_NEW_PROCESS_GROUP to allow killKostis Anagnostopoulos2016-09-264-17/+26
| | | | | + FIXED most hangs BUT no more `git-daemon` un-killable! + Use logger for utils to replace stray print().
* test, #519: Popen() pump: remove WaitGroupKostis Anagnostopoulos2016-09-262-46/+9
|
* test, #519: Popen() universal_newlin.es NoWindow in WinfoesKostis Anagnostopoulos2016-09-264-2/+16
| | | | | | + More win-fixes: + Do not check unicode files in < py3. + util, #519: x4 timeout of lock-file blocking, failing in Appveyor.
* test, #519: FIX appveyor conda & failures in py2.6 `assertRaisesRegexp`Kostis Anagnostopoulos2016-09-263-5/+11
|
* apveyor, #519: FIX incomplete Popen pumpKostis Anagnostopoulos2016-09-262-6/+18
| | | | | | | | + 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.
* apveyor: simplify test.Kostis Anagnostopoulos2016-09-261-1/+1
|
* win: GC.collect on all TC.tearDown to fix appveyor hang runsKostis Anagnostopoulos2016-09-269-3/+38
| | | | | + Fixed the hangs at `test_git:TestGit.test_handle_process_output()`. [travisci skip]
* test, deps: FIX `mock` deps on py3.Kostis Anagnostopoulos2016-09-254-20/+30
| | | | + Del extra spaces, import os.path as osp
* fix(test): put `test_commits` backSebastian Thiel2016-09-251-0/+1
| | | | Thanks to @yarikoptic for catching this one !
* fix(test): deal with py2 and py3Sebastian Thiel2016-09-251-1/+3
| | | | | | It ain't pretty, but should do the job. Related to #514
* fix(index): improve LockedFD handlingSebastian Thiel2016-09-252-2/+29
| | | | | | | | | | Relying on the destructor will not work, even though the code used to rely on it. Now we handle failures more explicitly. Far from perfect, but a good start for a fix. Fixes #514
* BF: allow for other section names which start with a string "remote"Yaroslav Halchenko2016-09-231-1/+1
| | | | | | | | | | | | | | | | | | | by demanding a space after a word remote, and space is explicitly described as a delimiter in man git-config: To begin a subsection put its name in double quotes, separated by space from the section name, otherwise e.g. File "/usr/lib/python2.7/dist-packages/datalad/support/gitrepo.py", line 836, in get_remote_branches for remote in self.repo.remotes: File "/home/yoh/deb/gits/python-git/git/repo/base.py", line 271, in remotes return Remote.list_items(self) File "/home/yoh/deb/gits/python-git/git/util.py", line 745, in list_items out_list.extend(cls.iter_items(repo, *args, **kwargs)) File "/home/yoh/deb/gits/python-git/git/remote.py", line 453, in iter_items raise ValueError("Remote-Section has invalid format: %r" % section) ValueError: Remote-Section has invalid format: u'remotes'
* doc(limitations): be very clear about known issuesSebastian Thiel2016-09-111-0/+0
| | | | Fixes #508
* fix(Head): checkout() handles detached headSebastian Thiel2016-09-112-1/+12
| | | | | | | | | It's not optimal, as we can now return one of two types which are only compatible in the most basic ways. However, it is better than before, I presume. Fixes #510
* fix(repo): make it serializable with pickleSebastian Thiel2016-09-113-3/+25
| | | | | | | It's entirely untested if this repo still does the right thing, but I'd think it does. Fixes #504
* fix(tag): resolve `commit` objects deeply.Sebastian Thiel2016-09-111-7/+7
| | | | | | | As TagObjects can point to other TagObjects, we need to keep going in order to resolve the final commit. Fixes #503
* Update Remotes section (#502)Forrest Hopkins2016-08-241-2/+7
| | | | | Update Remotes section The Remotes section was missing some pretty important info.
* fix(commit): handle gpgsig properlySebastian Thiel2016-08-212-6/+39
| | | | | | | Assure that gpgsig is not initialized with None to allow the automatic deserialization to kick in. Fixes #500
* Updated unittest.Phil Elson2016-08-191-2/+2
|
* Allowed remotes to have no refs.Phil Elson2016-08-191-1/+0
|
* use $GIT_DIR when setPiotr Gaczkowski2016-08-171-1/+1
|
* Merge pull request #496 from haizaar/masterSebastian Thiel2016-08-022-4/+25
|\ | | | | is_dirty supports path. Fixes #482.
| * is_dirty supports path. Fixes #482.Zaar Hai2016-08-012-4/+25
| |
* | refactor(cmd): streamline usage of creationflagsSebastian Thiel2016-08-021-13/+4
| |
* | fix flake8 problemsBarry Scott2016-08-011-3/+3
| |
* | add test to detect the corrupt logBarry Scott2016-08-011-1/+12
| | | | | | | | - add a second line to commit messages with the "BAD MESSAGE" text - read in the log and confirm that the seond line is not in the log file
* | creationflags must be set to 0 on non-windows platformsBarry Scott2016-08-011-4/+5
| |
* | Must pass creationflags as a keyworkBarry Scott2016-08-011-1/+1
| |
* | Prevent CMD windows being shown when starting git in a subprocess.Barry Scott2016-07-291-1/+14
| | | | | | | | | | 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.
* | Merge remote-tracking branch 'upstream/master'Barry Scott2016-07-297-11/+23
|\ \
| * \ Merge pull request #490 from bertwesarg/patch-1Sebastian Thiel2016-07-231-1/+1
| |\ \ | | | | | | | | Add missing newline when writing a symbolic ref.
| | * | Use binary string constant for concatenation.Bert Wesarg2016-07-191-1/+1
| | | |
| | * | Add missing newline when writing a symbolic ref.Bert Wesarg2016-07-191-1/+1
| | | |
| * | | fix(diff): use explicit change-type if possibleSebastian Thiel2016-07-233-5/+19
| |/ / | | | | | | | | | | | | | | | | | | | | | | | | | | | That way, we do not have to figure the change type out by examining the diff object. It's implemented in a way that should yield more desireable results as we keep the change-type that git is providing us with. Fixes #493
| * | fix(blame): lazily fetch full commit messageSebastian Thiel2016-07-172-5/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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