##// END OF EJS Templates
convert: hg: optionally create branches as clones...
convert: hg: optionally create branches as clones If convert.hg.clonebranches is set, branches will be created as clones of their parent revisions. All clones will be subdirectories of the destination path.

File last commit:

r4817:0ac6b537 default
r5173:6b4c332f default
Show More
interhg.py
64 lines | 1.6 KiB | text/x-python | PythonLexer
# 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