hgext/keyword.py
changeset 6050 adf73753eb7d
parent 6026 b7f44f01a632
child 6051 1038b1458d7a
equal deleted inserted replaced
6049:348132c112cf 6050:adf73753eb7d
   114         'Source': '{root}/{file},v',
   114         'Source': '{root}/{file},v',
   115         'Id': '{file|basename},v {node|short} {date|utcdate} {author|user}',
   115         'Id': '{file|basename},v {node|short} {date|utcdate} {author|user}',
   116         'Header': '{root}/{file},v {node|short} {date|utcdate} {author|user}',
   116         'Header': '{root}/{file},v {node|short} {date|utcdate} {author|user}',
   117     }
   117     }
   118 
   118 
   119     def __init__(self, ui, repo, inc, exc, restricted):
   119     def __init__(self, ui, repo, inc, exc, restrict):
   120         self.ui = ui
   120         self.ui = ui
   121         self.repo = repo
   121         self.repo = repo
   122         self.matcher = util.matcher(repo.root, inc=inc, exc=exc)[1]
   122         self.matcher = util.matcher(repo.root, inc=inc, exc=exc)[1]
   123         self.restricted = restricted
   123         self.restrict = restrict
   124         self.commitnode = None
   124         self.commitnode = None
   125         self.path = ''
   125         self.path = ''
   126 
   126 
   127         kwmaps = self.ui.configitems('keywordmaps')
   127         kwmaps = self.ui.configitems('keywordmaps')
   128         if kwmaps: # override default templates
   128         if kwmaps: # override default templates
   157 
   157 
   158         return subfunc(kwsub, data)
   158         return subfunc(kwsub, data)
   159 
   159 
   160     def expand(self, node, data):
   160     def expand(self, node, data):
   161         '''Returns data with keywords expanded.'''
   161         '''Returns data with keywords expanded.'''
   162         if self.restricted or util.binary(data):
   162         if self.restrict or util.binary(data):
   163             return data
   163             return data
   164         return self.substitute(node, data, self.re_kw.sub)
   164         return self.substitute(node, data, self.re_kw.sub)
   165 
   165 
   166     def process(self, node, data, expand):
   166     def process(self, node, data, expand):
   167         '''Returns a tuple: data, count.
   167         '''Returns a tuple: data, count.
   434             exc.append(pat)
   434             exc.append(pat)
   435     if not inc:
   435     if not inc:
   436         return
   436         return
   437 
   437 
   438     global _kwtemplater
   438     global _kwtemplater
   439     _restricted = hgcmd in restricted.split()
   439     restrict = hgcmd in restricted.split()
   440     _kwtemplater = kwtemplater(ui, repo, inc, exc, _restricted)
   440     _kwtemplater = kwtemplater(ui, repo, inc, exc, restrict)
   441 
   441 
   442     class kwrepo(repo.__class__):
   442     class kwrepo(repo.__class__):
   443         def file(self, f, kwmatch=False):
   443         def file(self, f, kwmatch=False):
   444             if f[0] == '/':
   444             if f[0] == '/':
   445                 f = f[1:]
   445                 f = f[1:]
   447                 return kwfilelog(self.sopener, f)
   447                 return kwfilelog(self.sopener, f)
   448             return filelog.filelog(self.sopener, f)
   448             return filelog.filelog(self.sopener, f)
   449 
   449 
   450         def wread(self, filename):
   450         def wread(self, filename):
   451             data = super(kwrepo, self).wread(filename)
   451             data = super(kwrepo, self).wread(filename)
   452             if _restricted and _kwtemplater.matcher(filename):
   452             if restrict and _kwtemplater.matcher(filename):
   453                 return _kwtemplater.shrink(data)
   453                 return _kwtemplater.shrink(data)
   454             return data
   454             return data
   455 
   455 
   456         def commit(self, files=None, text='', user=None, date=None,
   456         def commit(self, files=None, text='', user=None, date=None,
   457                    match=util.always, force=False, force_editor=False,
   457                    match=util.always, force=False, force_editor=False,