Ver Fonte

Enable tracing of ref scans and config unpickling

These are not as expensive as spawning a git command, but they are
not free either.  We want to keep track of how many times we wind
up calling them on any particular operation.

Signed-off-by: Shawn O. Pearce <sop@google.com>
Shawn O. Pearce há 17 anos atrás
pai
commit
b81ac9e654
2 ficheiros alterados com 9 adições e 1 exclusões
  1. 3 1
      git_config.py
  2. 6 0
      git_refs.py

+ 3 - 1
git_config.py

@@ -19,7 +19,7 @@ import re
 import sys
 from urllib2 import urlopen, HTTPError
 from error import GitError, UploadError
-from git_command import GitCommand
+from git_command import GitCommand, TRACE
 
 R_HEADS = 'refs/heads/'
 R_TAGS  = 'refs/tags/'
@@ -189,6 +189,8 @@ class GitConfig(object):
     except OSError:
       return None
     try:
+      if TRACE:
+        print >>sys.stderr, ': unpickle %s' % self.file
       return cPickle.load(open(self._pickle, 'r'))
     except IOError:
       os.remove(self._pickle)

+ 6 - 0
git_refs.py

@@ -14,6 +14,8 @@
 # limitations under the License.
 
 import os
+import sys
+from git_command import TRACE
 
 HEAD    = 'HEAD'
 R_HEADS = 'refs/heads/'
@@ -63,6 +65,8 @@ class GitRefs(object):
       self._LoadAll()
 
   def _NeedUpdate(self):
+    if TRACE:
+      print >>sys.stderr, ': scan refs %s' % self._gitdir
     for name, mtime in self._mtime.iteritems():
       try:
         if mtime != os.path.getmtime(os.path.join(self._gitdir, name)):
@@ -72,6 +76,8 @@ class GitRefs(object):
     return False
 
   def _LoadAll(self):
+    if TRACE:
+      print >>sys.stderr, ': load refs %s' % self._gitdir
     self._phyref = {}
     self._symref = {}
     self._mtime = {}