summaryrefslogtreecommitdiffstats
path: root/git_refs.py
diff options
context:
space:
mode:
Diffstat (limited to 'git_refs.py')
-rw-r--r--git_refs.py57
1 files changed, 28 insertions, 29 deletions
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):
67 self._LoadAll() 67 self._LoadAll()
68 68
69 def _NeedUpdate(self): 69 def _NeedUpdate(self):
70 Trace(': scan refs %s', self._gitdir) 70 with Trace(': scan refs %s', self._gitdir):
71 71 for name, mtime in self._mtime.items():
72 for name, mtime in self._mtime.items(): 72 try:
73 try: 73 if mtime != os.path.getmtime(os.path.join(self._gitdir, name)):
74 if mtime != os.path.getmtime(os.path.join(self._gitdir, name)): 74 return True
75 except OSError:
75 return True 76 return True
76 except OSError: 77 return False
77 return True
78 return False
79 78
80 def _LoadAll(self): 79 def _LoadAll(self):
81 Trace(': load refs %s', self._gitdir) 80 with Trace(': load refs %s', self._gitdir):
82 81
83 self._phyref = {} 82 self._phyref = {}
84 self._symref = {} 83 self._symref = {}
85 self._mtime = {} 84 self._mtime = {}
86 85
87 self._ReadPackedRefs() 86 self._ReadPackedRefs()
88 self._ReadLoose('refs/') 87 self._ReadLoose('refs/')
89 self._ReadLoose1(os.path.join(self._gitdir, HEAD), HEAD) 88 self._ReadLoose1(os.path.join(self._gitdir, HEAD), HEAD)
90 89
91 scan = self._symref 90 scan = self._symref
92 attempts = 0 91 attempts = 0
93 while scan and attempts < 5: 92 while scan and attempts < 5:
94 scan_next = {} 93 scan_next = {}
95 for name, dest in scan.items(): 94 for name, dest in scan.items():
96 if dest in self._phyref: 95 if dest in self._phyref:
97 self._phyref[name] = self._phyref[dest] 96 self._phyref[name] = self._phyref[dest]
98 else: 97 else:
99 scan_next[name] = dest 98 scan_next[name] = dest
100 scan = scan_next 99 scan = scan_next
101 attempts += 1 100 attempts += 1
102 101
103 def _ReadPackedRefs(self): 102 def _ReadPackedRefs(self):
104 path = os.path.join(self._gitdir, 'packed-refs') 103 path = os.path.join(self._gitdir, 'packed-refs')