Mercurial > hg > mercurial-crew-with-dirclash
view hgext/interhg.py @ 5173:7e05bdeee7de
convert: raise Abort instead of NoRepo when CVS pserver auth fails.
At this point we know the source is CVS, so we should not go through
the rest of the converters.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Wed, 15 Aug 2007 14:38:18 -0700 |
parents | 0ac6b537893f |
children | 18091102a633 |
line wrap: on
line source
# interhg.py - interhg # # Copyright 2007 OHASHI Hideya <ohachige@gmail.com> # # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. # # The `interhg' Mercurial extension allows you to change changelog and # summary text just like InterWiki way. # # To enable this extension: # # [extensions] # interhg = # # This is an example to link to a bug tracking system. # # [interhg] # pat1 = s/issue(\d+)/ <a href="http:\/\/bts\/issue\1">issue\1<\/a> / # # You can add patterns to use pat2, pat3, ... # For exapmle. # # pat2 = s/(^|\s)#(\d+)\b/ <b>#\2<\/b> / import re from mercurial.hgweb import hgweb_mod from mercurial import templater orig_escape = templater.common_filters["escape"] interhg_table = [] def interhg_escape(x): escstr = orig_escape(x) for pat in interhg_table: regexp = pat[0] format = pat[1] escstr = regexp.sub(format, escstr) return escstr templater.common_filters["escape"] = interhg_escape orig_refresh = hgweb_mod.hgweb.refresh def interhg_refresh(self): interhg_table[:] = [] num = 1 while True: key = 'pat%d' % num pat = self.config('interhg', key) if pat == None: break pat = pat[2:-1] span = re.search(r'[^\\]/', pat).span() regexp = pat[:span[0] + 1] format = pat[span[1]:] format = re.sub(r'\\/', '/', format) regexp = re.compile(regexp) interhg_table.append((regexp, format)) num += 1 return orig_refresh(self) hgweb_mod.hgweb.refresh = interhg_refresh