summaryrefslogtreecommitdiff
path: root/git/repo/base.py
diff options
context:
space:
mode:
Diffstat (limited to 'git/repo/base.py')
-rw-r--r--git/repo/base.py14
1 files changed, 8 insertions, 6 deletions
diff --git a/git/repo/base.py b/git/repo/base.py
index 947d77d2..8b68b5ff 100644
--- a/git/repo/base.py
+++ b/git/repo/base.py
@@ -899,8 +899,12 @@ class Repo(object):
try:
proc = git.clone(url, path, with_extended_output=True, as_process=True,
v=True, **add_progress(kwargs, git, progress))
- progress_handler = progress and progress.new_message_handler() or None
- handle_process_output(proc, None, progress_handler, finalize_process)
+ if progress:
+ handle_process_output(proc, None, progress.new_message_handler(), finalize_process)
+ else:
+ (stdout, stderr) = proc.communicate() # FIXME: Will block of outputs are big!
+ finalize_process(proc, stderr=stderr)
+ # end handle progress
finally:
if prev_cwd is not None:
os.chdir(prev_cwd)
@@ -920,10 +924,8 @@ class Repo(object):
# sure
repo = cls(os.path.abspath(path), odbt=odbt)
if repo.remotes:
- writer = repo.remotes[0].config_writer
- writer.set_value('url', repo.remotes[0].url.replace("\\\\", "\\").replace("\\", "/"))
- # PY3: be sure cleanup is performed and lock is released
- writer.release()
+ with repo.remotes[0].config_writer as writer:
+ writer.set_value('url', repo.remotes[0].url.replace("\\\\", "\\").replace("\\", "/"))
# END handle remote repo
return repo