mirror of
https://gerrit.googlesource.com/git-repo
synced 2024-12-21 07:16:21 +00:00
Fix TRACE_FILE renaming.
Bug: b/258073923 Change-Id: I997961056388e1550711f73a6310788b5c7ad4d4 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350934 Tested-by: Joanna Wang <jojwang@google.com> Reviewed-by: LaMont Jones <lamontjones@google.com>
This commit is contained in:
parent
7efab539f0
commit
24c6314fca
2
main.py
2
main.py
@ -109,7 +109,7 @@ global_options.add_option('--color',
|
||||
global_options.add_option('--trace',
|
||||
dest='trace', action='store_true',
|
||||
help='trace git command execution (REPO_TRACE=1)')
|
||||
global_options.add_option('--trace_to_stderr',
|
||||
global_options.add_option('--trace-to-stderr',
|
||||
dest='trace_to_stderr', action='store_true',
|
||||
help='trace outputs go to stderr in addition to .repo/TRACE_FILE')
|
||||
global_options.add_option('--trace-python',
|
||||
|
@ -25,7 +25,7 @@ control color usage: auto, always, never
|
||||
\fB\-\-trace\fR
|
||||
trace git command execution (REPO_TRACE=1)
|
||||
.TP
|
||||
\fB\-\-trace_to_stderr\fR
|
||||
\fB\-\-trace-to-stderr\fR
|
||||
trace outputs go to stderr in addition to
|
||||
\&.repo/TRACE_FILE
|
||||
.TP
|
||||
|
@ -22,10 +22,11 @@ To also include trace outputs in stderr do `repo --trace_to_stderr ...`
|
||||
|
||||
import sys
|
||||
import os
|
||||
import tempfile
|
||||
import time
|
||||
from contextlib import ContextDecorator
|
||||
|
||||
import platform_utils
|
||||
|
||||
# Env var to implicitly turn on tracing.
|
||||
REPO_TRACE = 'REPO_TRACE'
|
||||
|
||||
@ -38,7 +39,7 @@ _TRACE_FILE = None
|
||||
|
||||
_TRACE_FILE_NAME = 'TRACE_FILE'
|
||||
|
||||
_MAX_SIZE = 5 # in mb
|
||||
_MAX_SIZE = 70 # in mb
|
||||
|
||||
_NEW_COMMAND_SEP = '+++++++++++++++NEW COMMAND+++++++++++++++++++'
|
||||
|
||||
@ -123,7 +124,7 @@ def _GetTraceFile():
|
||||
return trace_file
|
||||
|
||||
def _ClearOldTraces():
|
||||
"""Clear traces from old commands if trace file is too big.
|
||||
"""Clear the oldest commands if trace file is too big.
|
||||
|
||||
Note: If the trace file contains output from two `repo`
|
||||
commands that were running at the same time, this
|
||||
@ -131,12 +132,12 @@ def _ClearOldTraces():
|
||||
"""
|
||||
if os.path.isfile(_TRACE_FILE):
|
||||
while os.path.getsize(_TRACE_FILE)/(1024*1024) > _MAX_SIZE:
|
||||
temp = tempfile.NamedTemporaryFile(mode='w', delete=False)
|
||||
temp_file = _TRACE_FILE + '.tmp'
|
||||
with open(_TRACE_FILE, 'r', errors='ignore') as fin:
|
||||
trace_lines = fin.readlines()
|
||||
for i , l in enumerate(trace_lines):
|
||||
if 'END:' in l and _NEW_COMMAND_SEP in l:
|
||||
temp.writelines(trace_lines[i+1:])
|
||||
break
|
||||
temp.close()
|
||||
os.replace(temp.name, _TRACE_FILE)
|
||||
with open(temp_file, 'w') as tf:
|
||||
trace_lines = fin.readlines()
|
||||
for i , l in enumerate(trace_lines):
|
||||
if 'END:' in l and _NEW_COMMAND_SEP in l:
|
||||
tf.writelines(trace_lines[i+1:])
|
||||
break
|
||||
platform_utils.rename(temp_file, _TRACE_FILE)
|
||||
|
Loading…
Reference in New Issue
Block a user