diff --git a/core/git_command.py b/core/git_command.py index 51f8bc63e..a017b53f2 100755 --- a/core/git_command.py +++ b/core/git_command.py @@ -195,31 +195,35 @@ def git(self, *args, env=environ, startupinfo=startupinfo) - original_stdin = stdin if stdin is not None and encode: stdin = stdin.encode(encoding=stdin_encoding) - if show_panel and live_panel_output: + def initialize_panel(): + # clear panel util.log.panel("") if savvy_settings.get("show_stdin_in_output") and stdin is not None: - util.log.panel_append("STDIN\n{}\n".format(original_stdin)) + util.log.panel_append("STDIN\n{}\n".format(stdin)) if savvy_settings.get("show_input_in_output"): - util.log.panel_append("> {}\n\n".format(command_str)) + util.log.panel_append("> {}\n".format(command_str)) + if show_panel and live_panel_output: wrapper = LoggingProcessWrapper(p) + initialize_panel() stdout, stderr = wrapper.communicate(stdin) else: stdout, stderr = p.communicate(stdin) - if show_panel: - util.log.panel("") - if savvy_settings.get("show_stdin_in_output") and stdin is not None: - util.log.panel_append("STDIN\n{}\n".format(original_stdin)) - if savvy_settings.get("show_input_in_output"): - util.log.panel_append("> {}\n".format(command_str)) - util.log.panel_append("{}\n{}".format(stdout, stderr)) if decode: stdout, stderr = self.decode_stdout(stdout, savvy_settings), stderr.decode() + if show_panel and not live_panel_output: + initialize_panel() + if stdout: + util.log.panel_append(stdout) + if stderr: + if stdout: + util.log.panel_append("\n") + util.log.panel_append(stderr) + except Exception as e: # this should never be reached raise GitSavvyError("Please report this error to GitSavvy:\n\n{}".format(e))