diff options
author | Sebastian Thiel <byronimo@gmail.com> | 2015-01-07 11:18:07 +0100 |
---|---|---|
committer | Sebastian Thiel <byronimo@gmail.com> | 2015-01-07 11:18:07 +0100 |
commit | 491440543571b07c849c0ef9c4ebf5c27f263bc0 (patch) | |
tree | eb4f7d54bc9d7bd1e57472f22558ff99d099c576 /git/repo/base.py | |
parent | d83f6e84cbeb45dce4576a9a4591446afefa50b2 (diff) | |
download | gitpython-491440543571b07c849c0ef9c4ebf5c27f263bc0.tar.gz |
Implemented non-blocking operations using poll()
Next up is using threads
Diffstat (limited to 'git/repo/base.py')
-rw-r--r-- | git/repo/base.py | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/git/repo/base.py b/git/repo/base.py index 2a63492b..e8db3540 100644 --- a/git/repo/base.py +++ b/git/repo/base.py @@ -5,7 +5,10 @@ # the BSD License: http://www.opensource.org/licenses/bsd-license.php from git.exc import InvalidGitRepositoryError, NoSuchPathError -from git.cmd import Git +from git.cmd import ( + Git, + handle_process_output +) from git.refs import ( HEAD, Head, @@ -25,7 +28,6 @@ from git.index import IndexFile from git.config import GitConfigParser from git.remote import ( Remote, - digest_process_messages, add_progress ) @@ -711,9 +713,10 @@ class Repo(object): proc = git.clone(url, path, with_extended_output=True, as_process=True, v=True, **add_progress(kwargs, git, progress)) if progress: - digest_process_messages(proc.stderr, progress) - # END handle progress - finalize_process(proc) + handle_process_output(proc, None, progress.new_message_handler(), finalize_process) + else: + finalize_process(proc) + # end handle progress finally: if prev_cwd is not None: os.chdir(prev_cwd) |