diff --git a/git_command.py b/git_command.py index c7e94fd..26668a3 100644 --- a/git_command.py +++ b/git_command.py @@ -226,6 +226,7 @@ class GitCommand(object): provide_stdin=False, capture_stdout=False, capture_stderr=False, + merge_output=False, disable_editor=False, ssh_proxy=False, cwd=None, @@ -277,7 +278,7 @@ class GitCommand(object): stdin = None stdout = subprocess.PIPE - stderr = subprocess.PIPE + stderr = subprocess.STDOUT if merge_output else subprocess.PIPE if IsTrace(): global LAST_CWD @@ -305,6 +306,8 @@ class GitCommand(object): dbg += ' 1>|' if stderr == subprocess.PIPE: dbg += ' 2>|' + elif stderr == subprocess.STDOUT: + dbg += ' 2>&1' Trace('%s', dbg) try: @@ -352,7 +355,8 @@ class GitCommand(object): p = self.process s_in = platform_utils.FileDescriptorStreams.create() s_in.add(p.stdout, sys.stdout, 'stdout') - s_in.add(p.stderr, sys.stderr, 'stderr') + if p.stderr is not None: + s_in.add(p.stderr, sys.stderr, 'stderr') self.stdout = '' self.stderr = '' diff --git a/project.py b/project.py index 57a5832..3c4b4ae 100644 --- a/project.py +++ b/project.py @@ -2365,7 +2365,8 @@ class Project(object): ok = False for _i in range(2): - gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy) + gitcmd = GitCommand(self, cmd, bare=True, ssh_proxy=ssh_proxy, + merge_output=True, capture_stdout=not verbose) ret = gitcmd.Wait() if ret == 0: ok = True @@ -2388,6 +2389,8 @@ class Project(object): elif ret < 0: # Git died with a signal, exit immediately break + if not verbose: + print('%s:\n%s' % (self.name, gitcmd.stdout), file=sys.stderr) time.sleep(random.randint(30, 45)) if initial: