From a6c52f566acfbff5b0f37158c0d33adf05d250e5 Mon Sep 17 00:00:00 2001 From: Joanna Wang Date: Thu, 3 Nov 2022 16:51:19 -0400 Subject: Set tracing to always on and save to .repo/TRACE_FILE. - add `--trace_to_stderr` option so stderr will include trace outputs and any other errors that get sent to stderr - while TRACE_FILE will only include trace outputs piggy-backing on: https://gerrit-review.googlesource.com/c/git-repo/+/349154 Change-Id: I3895a84de4b2784f17fac4325521cd5e72e645e2 Reviewed-on: https://gerrit-review.googlesource.com/c/git-repo/+/350114 Reviewed-by: LaMont Jones Tested-by: Joanna Wang --- git_refs.py | 57 ++++++++++++++++++++++++++++----------------------------- 1 file changed, 28 insertions(+), 29 deletions(-) (limited to 'git_refs.py') diff --git a/git_refs.py b/git_refs.py index 2d4a8090..300d2b30 100644 --- a/git_refs.py +++ b/git_refs.py @@ -67,38 +67,37 @@ class GitRefs(object): self._LoadAll() def _NeedUpdate(self): - Trace(': scan refs %s', self._gitdir) - - for name, mtime in self._mtime.items(): - try: - if mtime != os.path.getmtime(os.path.join(self._gitdir, name)): + with Trace(': scan refs %s', self._gitdir): + for name, mtime in self._mtime.items(): + try: + if mtime != os.path.getmtime(os.path.join(self._gitdir, name)): + return True + except OSError: return True - except OSError: - return True - return False + return False def _LoadAll(self): - Trace(': load refs %s', self._gitdir) - - self._phyref = {} - self._symref = {} - self._mtime = {} - - self._ReadPackedRefs() - self._ReadLoose('refs/') - self._ReadLoose1(os.path.join(self._gitdir, HEAD), HEAD) - - scan = self._symref - attempts = 0 - while scan and attempts < 5: - scan_next = {} - for name, dest in scan.items(): - if dest in self._phyref: - self._phyref[name] = self._phyref[dest] - else: - scan_next[name] = dest - scan = scan_next - attempts += 1 + with Trace(': load refs %s', self._gitdir): + + self._phyref = {} + self._symref = {} + self._mtime = {} + + self._ReadPackedRefs() + self._ReadLoose('refs/') + self._ReadLoose1(os.path.join(self._gitdir, HEAD), HEAD) + + scan = self._symref + attempts = 0 + while scan and attempts < 5: + scan_next = {} + for name, dest in scan.items(): + if dest in self._phyref: + self._phyref[name] = self._phyref[dest] + else: + scan_next[name] = dest + scan = scan_next + attempts += 1 def _ReadPackedRefs(self): path = os.path.join(self._gitdir, 'packed-refs') -- cgit v1.2.3-54-g00ecf