##// END OF EJS Templates
eol: extract parsing error handling in parseeol()
Patrick Mezard -
r13614:40d0cf79 default
parent child Browse files
Show More
@@ -166,17 +166,23 b' class eolfile(object):'
166 166 ui.warn(_("ignoring unknown EOL style '%s' from %s\n")
167 167 % (style, self.cfg.source('patterns', pattern)))
168 168
169 def parseeol(ui, repo, node=None):
169 def parseeol(ui, repo, nodes):
170 170 try:
171 if node is None:
172 # Cannot use workingctx.data() since it would load
173 # and cache the filters before we configure them.
174 data = repo.wfile('.hgeol').read()
175 else:
176 data = repo[node]['.hgeol'].data()
177 return eolfile(ui, repo.root, data)
178 except (IOError, LookupError):
179 return None
171 for node in nodes:
172 try:
173 if node is None:
174 # Cannot use workingctx.data() since it would load
175 # and cache the filters before we configure them.
176 data = repo.wfile('.hgeol').read()
177 else:
178 data = repo[node]['.hgeol'].data()
179 return eolfile(ui, repo.root, data)
180 except (IOError, LookupError):
181 pass
182 except error.ParseError, inst:
183 ui.warn(_("warning: ignoring .hgeol file due to parse error "
184 "at %s: %s\n") % (inst.args[1], inst.args[0]))
185 return None
180 186
181 187 def hook(ui, repo, node, hooktype, **kwargs):
182 188 """verify that files have expected EOLs"""
@@ -202,11 +208,7 b' def hook(ui, repo, node, hooktype, **kwa'
202 208
203 209 def preupdate(ui, repo, hooktype, parent1, parent2):
204 210 #print "preupdate for %s: %s -> %s" % (repo.root, parent1, parent2)
205 try:
206 repo.loadeol(parent1)
207 except error.ParseError, inst:
208 ui.warn(_("warning: ignoring .hgeol file due to parse error "
209 "at %s: %s\n") % (inst.args[1], inst.args[0]))
211 repo.loadeol([parent1])
210 212 return False
211 213
212 214 def uisetup(ui):
@@ -234,21 +236,15 b' def reposetup(ui, repo):'
234 236
235 237 class eolrepo(repo.__class__):
236 238
237 def loadeol(self, node=None):
238 eol = parseeol(self.ui, self, node)
239 def loadeol(self, nodes):
240 eol = parseeol(self.ui, self, nodes)
239 241 if eol is None:
240 242 return None
241 243 eol.setfilters(self.ui)
242 244 return eol.match
243 245
244 246 def _hgcleardirstate(self):
245 try:
246 self._eolfile = (self.loadeol() or self.loadeol('tip'))
247 except error.ParseError, inst:
248 ui.warn(_("warning: ignoring .hgeol file due to parse error "
249 "at %s: %s\n") % (inst.args[1], inst.args[0]))
250 self._eolfile = None
251
247 self._eolfile = self.loadeol([None, 'tip'])
252 248 if not self._eolfile:
253 249 self._eolfile = util.never
254 250 return
General Comments 0
You need to be logged in to leave comments. Login now