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)