comparison mercurial/match.py @ 26587:56b2bcea2529

error: get Abort from 'error' instead of 'util' The home of 'Abort' is 'error' not 'util' however, a lot of code seems to be confused about that and gives all the credit to 'util' instead of the hardworking 'error'. In a spirit of equity, we break the cycle of injustice and give back to 'error' the respect it deserves. And screw that 'util' poser. For great justice.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Thu, 08 Oct 2015 12:55:45 -0700
parents a5f62af29517
children 1aee2ab0f902
comparison
equal deleted inserted replaced
26586:d51c658d3f04 26587:56b2bcea2529
11 import os 11 import os
12 import re 12 import re
13 13
14 from .i18n import _ 14 from .i18n import _
15 from . import ( 15 from . import (
16 error,
16 pathutil, 17 pathutil,
17 util, 18 util,
18 ) 19 )
19 20
20 propertycache = util.propertycache 21 propertycache = util.propertycache
35 other = [] 36 other = []
36 37
37 for kind, pat, source in kindpats: 38 for kind, pat, source in kindpats:
38 if kind == 'set': 39 if kind == 'set':
39 if not ctx: 40 if not ctx:
40 raise util.Abort("fileset expression with no context") 41 raise error.Abort("fileset expression with no context")
41 s = ctx.getfileset(pat) 42 s = ctx.getfileset(pat)
42 fset.update(s) 43 fset.update(s)
43 44
44 if listsubrepos: 45 if listsubrepos:
45 for subpath in ctx.substate: 46 for subpath in ctx.substate:
288 files = files.split('\0') 289 files = files.split('\0')
289 else: 290 else:
290 files = files.splitlines() 291 files = files.splitlines()
291 files = [f for f in files if f] 292 files = [f for f in files if f]
292 except EnvironmentError: 293 except EnvironmentError:
293 raise util.Abort(_("unable to read file list (%s)") % pat) 294 raise error.Abort(_("unable to read file list (%s)") % pat)
294 for k, p, source in self._normalize(files, default, root, cwd, 295 for k, p, source in self._normalize(files, default, root, cwd,
295 auditor): 296 auditor):
296 kindpats.append((k, p, pat)) 297 kindpats.append((k, p, pat))
297 continue 298 continue
298 elif kind == 'include': 299 elif kind == 'include':
300 fullpath = os.path.join(root, util.localpath(pat)) 301 fullpath = os.path.join(root, util.localpath(pat))
301 includepats = readpatternfile(fullpath, self._warn) 302 includepats = readpatternfile(fullpath, self._warn)
302 for k, p, source in self._normalize(includepats, default, 303 for k, p, source in self._normalize(includepats, default,
303 root, cwd, auditor): 304 root, cwd, auditor):
304 kindpats.append((k, p, source or pat)) 305 kindpats.append((k, p, source or pat))
305 except util.Abort as inst: 306 except error.Abort as inst:
306 raise util.Abort('%s: %s' % (pat, inst[0])) 307 raise error.Abort('%s: %s' % (pat, inst[0]))
307 except IOError as inst: 308 except IOError as inst:
308 if self._warn: 309 if self._warn:
309 self._warn(_("skipping unreadable pattern file " 310 self._warn(_("skipping unreadable pattern file "
310 "'%s': %s\n") % (pat, inst.strerror)) 311 "'%s': %s\n") % (pat, inst.strerror))
311 continue 312 continue
585 for k, p, s in kindpats: 586 for k, p, s in kindpats:
586 try: 587 try:
587 _rematcher('(?:%s)' % _regex(k, p, globsuffix)) 588 _rematcher('(?:%s)' % _regex(k, p, globsuffix))
588 except re.error: 589 except re.error:
589 if s: 590 if s:
590 raise util.Abort(_("%s: invalid pattern (%s): %s") % 591 raise error.Abort(_("%s: invalid pattern (%s): %s") %
591 (s, k, p)) 592 (s, k, p))
592 else: 593 else:
593 raise util.Abort(_("invalid pattern (%s): %s") % (k, p)) 594 raise error.Abort(_("invalid pattern (%s): %s") % (k, p))
594 raise util.Abort(_("invalid pattern")) 595 raise error.Abort(_("invalid pattern"))
595 596
596 def _roots(kindpats): 597 def _roots(kindpats):
597 '''return roots and exact explicitly listed files from patterns 598 '''return roots and exact explicitly listed files from patterns
598 599
599 >>> _roots([('glob', 'g/*', ''), ('glob', 'g', ''), ('glob', 'g*', '')]) 600 >>> _roots([('glob', 'g/*', ''), ('glob', 'g', ''), ('glob', 'g*', '')])