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>
diff --git a/main.py b/main.py
index a22c6a1..f4b6e7a 100755
--- a/main.py
+++ b/main.py
@@ -109,7 +109,7 @@
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',
diff --git a/man/repo.1 b/man/repo.1
index e7368a8..6a9e07d 100644
--- a/man/repo.1
+++ b/man/repo.1
@@ -25,7 +25,7 @@
\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
diff --git a/repo_trace.py b/repo_trace.py
index 0354295..86cbfc6 100644
--- a/repo_trace.py
+++ b/repo_trace.py
@@ -22,10 +22,11 @@
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_NAME = 'TRACE_FILE'
-_MAX_SIZE = 5 # in mb
+_MAX_SIZE = 70 # in mb
_NEW_COMMAND_SEP = '+++++++++++++++NEW COMMAND+++++++++++++++++++'
@@ -123,7 +124,7 @@
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 @@
"""
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)