mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Improve always-on-trace
Notes to the user need to go to stderr, and tracing should not be on for fast exiting invocations (such as --help). This makes it so that release/update-manpages works. Change-Id: Ib183193c868a78c295a184c01c4532cd53d512eb Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350794 Tested-by: LaMont Jones <lamontjones@google.com> Reviewed-by: Xin Li <delphij@google.com>
This commit is contained in:
parent
776138a938
commit
a3ff64cae5
25
main.py
25
main.py
@ -216,6 +216,21 @@ class _Repo(object):
|
|||||||
self._PrintHelp(short=True)
|
self._PrintHelp(short=True)
|
||||||
return 1
|
return 1
|
||||||
|
|
||||||
|
run = lambda: self._RunLong(name, gopts, argv) or 0
|
||||||
|
with Trace('starting new command: %s', ', '.join([name] + argv),
|
||||||
|
first_trace=True):
|
||||||
|
if gopts.trace_python:
|
||||||
|
import trace
|
||||||
|
tracer = trace.Trace(count=False, trace=True, timing=True,
|
||||||
|
ignoredirs=set(sys.path[1:]))
|
||||||
|
result = tracer.runfunc(run)
|
||||||
|
else:
|
||||||
|
result = run()
|
||||||
|
return result
|
||||||
|
|
||||||
|
def _RunLong(self, name, gopts, argv):
|
||||||
|
"""Execute the (longer running) requested subcommand."""
|
||||||
|
result = 0
|
||||||
SetDefaultColoring(gopts.color)
|
SetDefaultColoring(gopts.color)
|
||||||
|
|
||||||
git_trace2_event_log = EventLog()
|
git_trace2_event_log = EventLog()
|
||||||
@ -663,15 +678,7 @@ def _Main(argv):
|
|||||||
if gopts.trace_to_stderr:
|
if gopts.trace_to_stderr:
|
||||||
SetTraceToStderr()
|
SetTraceToStderr()
|
||||||
|
|
||||||
with Trace('starting new command: %s', ', '.join([name] + argv), first_trace=True):
|
result = repo._Run(name, gopts, argv) or 0
|
||||||
run = lambda: repo._Run(name, gopts, argv) or 0
|
|
||||||
if gopts.trace_python:
|
|
||||||
import trace
|
|
||||||
tracer = trace.Trace(count=False, trace=True, timing=True,
|
|
||||||
ignoredirs=set(sys.path[1:]))
|
|
||||||
result = tracer.runfunc(run)
|
|
||||||
else:
|
|
||||||
result = run()
|
|
||||||
except KeyboardInterrupt:
|
except KeyboardInterrupt:
|
||||||
print('aborted by user', file=sys.stderr)
|
print('aborted by user', file=sys.stderr)
|
||||||
result = 1
|
result = 1
|
||||||
|
@ -119,7 +119,7 @@ def _GetTraceFile():
|
|||||||
# TODO: refactor to pass repodir to Trace.
|
# TODO: refactor to pass repodir to Trace.
|
||||||
repo_dir = os.path.dirname(os.path.dirname(__file__))
|
repo_dir = os.path.dirname(os.path.dirname(__file__))
|
||||||
trace_file = os.path.join(repo_dir, _TRACE_FILE_NAME)
|
trace_file = os.path.join(repo_dir, _TRACE_FILE_NAME)
|
||||||
print('Trace outputs in %s' % trace_file)
|
print('Trace outputs in %s' % trace_file, file=sys.stderr)
|
||||||
return trace_file
|
return trace_file
|
||||||
|
|
||||||
def _ClearOldTraces():
|
def _ClearOldTraces():
|
||||||
|
Loading…
Reference in New Issue
Block a user