##// END OF EJS Templates
hgweb: fix race in refreshing repo list (issue2188)
Matt Mackall -
r11176:ed5d2a7c default
parent child Browse files
Show More
@@ -56,21 +56,33 b' class hgwebdir(object):'
56 return
56 return
57
57
58 if self.baseui:
58 if self.baseui:
59 self.ui = self.baseui.copy()
59 u = self.baseui.copy()
60 else:
60 else:
61 self.ui = ui.ui()
61 u = ui.ui()
62 self.ui.setconfig('ui', 'report_untrusted', 'off')
62 u.setconfig('ui', 'report_untrusted', 'off')
63 self.ui.setconfig('ui', 'interactive', 'off')
63 u.setconfig('ui', 'interactive', 'off')
64
64
65 if not isinstance(self.conf, (dict, list, tuple)):
65 if not isinstance(self.conf, (dict, list, tuple)):
66 map = {'paths': 'hgweb-paths'}
66 map = {'paths': 'hgweb-paths'}
67 self.ui.readconfig(self.conf, remap=map, trust=True)
67 u.readconfig(self.conf, remap=map, trust=True)
68 paths = self.ui.configitems('hgweb-paths')
68 paths = u.configitems('hgweb-paths')
69 elif isinstance(self.conf, (list, tuple)):
69 elif isinstance(self.conf, (list, tuple)):
70 paths = self.conf
70 paths = self.conf
71 elif isinstance(self.conf, dict):
71 elif isinstance(self.conf, dict):
72 paths = self.conf.items()
72 paths = self.conf.items()
73
73
74 repos = findrepos(paths)
75 for prefix, root in u.configitems('collections'):
76 prefix = util.pconvert(prefix)
77 for path in util.walkrepos(root, followsym=True):
78 repo = os.path.normpath(path)
79 name = util.pconvert(repo)
80 if name.startswith(prefix):
81 name = name[len(prefix):]
82 repos.append((name.lstrip('/'), repo))
83
84 self.repos = repos
85 self.ui = u
74 encoding.encoding = self.ui.config('web', 'encoding',
86 encoding.encoding = self.ui.config('web', 'encoding',
75 encoding.encoding)
87 encoding.encoding)
76 self.style = self.ui.config('web', 'style', 'paper')
88 self.style = self.ui.config('web', 'style', 'paper')
@@ -78,17 +90,6 b' class hgwebdir(object):'
78 if self.stripecount:
90 if self.stripecount:
79 self.stripecount = int(self.stripecount)
91 self.stripecount = int(self.stripecount)
80 self._baseurl = self.ui.config('web', 'baseurl')
92 self._baseurl = self.ui.config('web', 'baseurl')
81
82 self.repos = findrepos(paths)
83 for prefix, root in self.ui.configitems('collections'):
84 prefix = util.pconvert(prefix)
85 for path in util.walkrepos(root, followsym=True):
86 repo = os.path.normpath(path)
87 name = util.pconvert(repo)
88 if name.startswith(prefix):
89 name = name[len(prefix):]
90 self.repos.append((name.lstrip('/'), repo))
91
92 self.lastrefresh = time.time()
93 self.lastrefresh = time.time()
93
94
94 def run(self):
95 def run(self):
General Comments 0
You need to be logged in to leave comments. Login now