122 kwtools['inc'], kwtools['exc']) |
122 kwtools['inc'], kwtools['exc']) |
123 self.restrict = kwtools['hgcmd'] in restricted.split() |
123 self.restrict = kwtools['hgcmd'] in restricted.split() |
124 |
124 |
125 kwmaps = self.ui.configitems('keywordmaps') |
125 kwmaps = self.ui.configitems('keywordmaps') |
126 if kwmaps: # override default templates |
126 if kwmaps: # override default templates |
127 kwmaps = [(k, templater.parsestring(v, False)) |
127 self.templates = dict((k, templater.parsestring(v, False)) |
128 for (k, v) in kwmaps] |
128 for k, v in kwmaps) |
129 self.templates = dict(kwmaps) |
|
130 escaped = map(re.escape, self.templates.keys()) |
129 escaped = map(re.escape, self.templates.keys()) |
131 kwpat = r'\$(%s)(: [^$\n\r]*? )??\$' % '|'.join(escaped) |
130 kwpat = r'\$(%s)(: [^$\n\r]*? )??\$' % '|'.join(escaped) |
132 self.re_kw = re.compile(kwpat) |
131 self.re_kw = re.compile(kwpat) |
133 |
132 |
134 templatefilters.filters['utcdate'] = utcdate |
133 templatefilters.filters['utcdate'] = utcdate |
455 |
454 |
456 def wread(self, filename): |
455 def wread(self, filename): |
457 data = super(kwrepo, self).wread(filename) |
456 data = super(kwrepo, self).wread(filename) |
458 return kwt.wread(filename, data) |
457 return kwt.wread(filename, data) |
459 |
458 |
460 def commit(self, text='', user=None, date=None, match=None, |
459 def commit(self, *args, **opts): |
461 force=False, editor=None, extra={}): |
|
462 # use custom commitctx for user commands |
460 # use custom commitctx for user commands |
463 # other extensions can still wrap repo.commitctx directly |
461 # other extensions can still wrap repo.commitctx directly |
464 repo.commitctx = self.kwcommitctx |
462 self.commitctx = self.kwcommitctx |
465 return super(kwrepo, self).commit(text, user, date, match, force, |
463 try: |
466 editor, extra) |
464 return super(kwrepo, self).commit(*args, **opts) |
|
465 finally: |
|
466 del self.commitctx |
467 |
467 |
468 def kwcommitctx(self, ctx, error=False): |
468 def kwcommitctx(self, ctx, error=False): |
469 wlock = lock = None |
469 wlock = lock = None |
470 try: |
470 try: |
471 wlock = self.wlock() |
471 wlock = self.wlock() |
485 |
485 |
486 kwt.overwrite(n, True, None) |
486 kwt.overwrite(n, True, None) |
487 if commithooks: |
487 if commithooks: |
488 for name, cmd in commithooks.iteritems(): |
488 for name, cmd in commithooks.iteritems(): |
489 ui.setconfig('hooks', name, cmd) |
489 ui.setconfig('hooks', name, cmd) |
490 repo.hook('commit', node=n, parent1=xp1, parent2=xp2) |
490 self.hook('commit', node=n, parent1=xp1, parent2=xp2) |
491 return n |
491 return n |
492 finally: |
492 finally: |
493 release(lock, wlock) |
493 release(lock, wlock) |
494 |
494 |
495 # monkeypatches |
495 # monkeypatches |