##// END OF EJS Templates
largefiles: fix cat of non-largefiles from subdirectory...
largefiles: fix cat of non-largefiles from subdirectory We were calling back to the original commands.cat from inside the walk loop that handled and filtered out largefiles. That did however happen with file paths relative to repo root and the original cat would fail when it applied its own walk and match on top of that. Instead we now duplicate and modify the code from commands.cat and patch it to handle both normal and largefiles. A change in test output shows that this also makes the exit code with largefiles consistent with the normal one in the case where one of several specified files are missing. This also fixes the combination of --output and largefiles.

File last commit:

r16743:38caf405 default
r18974:d78a136a default
Show More
interhg.py
83 lines | 2.8 KiB | text/x-python | PythonLexer
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817 # interhg.py - interhg
#
# Copyright 2007 OHASHI Hideya <ohachige@gmail.com>
#
Edward Lee
interhg: allow more flexible pattern specification (fixes 2/3 of issue699)...
r5288 # Contributor(s):
# Edward Lee <edward.lee@engineering.uiuc.edu>
#
Martin Geisler
updated license to be explicit about GPL version 2
r8225 # This software may be used and distributed according to the terms of the
Matt Mackall
Update license to GPLv2+
r10263 # GNU General Public License version 2 or any later version.
Cédric Duval
interhg: upgrade comments to online help and improve them...
r8824
'''expand expressions into changelog and summaries
Martin Geisler
interhg: wrap docstrings at 70 characters
r9263 This extension allows the use of a special syntax in summaries, which
will be automatically expanded into links or any other arbitrary
expression, much like InterWiki does.
Cédric Duval
interhg: upgrade comments to online help and improve them...
r8824
Martin Geisler
interhg: wrap docstrings at 70 characters
r9263 A few example patterns (link to bug tracking, etc.) that may be used
in your hgrc::
Cédric Duval
interhg: upgrade comments to online help and improve them...
r8824
[interhg]
Martin Geisler
interhg: escape backslashes in docstring
r8910 issues = s!issue(\\d+)!<a href="http://bts/issue\\1">issue\\1</a>!
bugzilla = s!((?:bug|b=|(?=#?\\d{4,}))(?:\\s*#?)(\\d+))!<a..=\\2">\\1</a>!i
boldify = s!(^|\\s)#(\\d+)\\b! <b>#\\2</b>!
Cédric Duval
interhg: upgrade comments to online help and improve them...
r8824 '''
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817
import re
from mercurial.hgweb import hgweb_mod
Matt Mackall
extensions: use new wrapper functions
r7216 from mercurial import templatefilters, extensions
Martin Geisler
i18n: mark strings for translation in interhg extension
r6962 from mercurial.i18n import _
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817
Augie Fackler
hgext: mark all first-party extensions as such
r16743 testedwith = 'internal'
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817 interhg_table = []
Augie Fackler
interhg: use uisetup() instead of module-load side effects...
r12766 def uisetup(ui):
orig_escape = templatefilters.filters["escape"]
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817
Augie Fackler
interhg: use uisetup() instead of module-load side effects...
r12766 def interhg_escape(x):
escstr = orig_escape(x)
for regexp, format in interhg_table:
escstr = regexp.sub(format, escstr)
return escstr
templatefilters.filters["escape"] = interhg_escape
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817
Wagner Bruna
interhg: fixes regression introduced by 38170eeed18c
r10472 def interhg_refresh(orig, self, *args, **kwargs):
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817 interhg_table[:] = []
Edward Lee
interhg: allow more flexible pattern specification (fixes 2/3 of issue699)...
r5288 for key, pattern in self.repo.ui.configitems('interhg'):
# grab the delimiter from the character after the "s"
unesc = pattern[1]
delim = re.escape(unesc)
# identify portions of the pattern, taking care to avoid escaped
# delimiters. the replace format and flags are optional, but delimiters
# are required.
match = re.match(r'^s%s(.+)(?:(?<=\\\\)|(?<!\\))%s(.*)%s([ilmsux])*$'
% (delim, delim, delim), pattern)
if not match:
Martin Geisler
i18n: mark strings for translation in interhg extension
r6962 self.repo.ui.warn(_("interhg: invalid pattern for %s: %s\n")
Edward Lee
interhg: allow more flexible pattern specification (fixes 2/3 of issue699)...
r5288 % (key, pattern))
continue
# we need to unescape the delimiter for regexp and format
delim_re = re.compile(r'(?<!\\)\\%s' % delim)
regexp = delim_re.sub(unesc, match.group(1))
format = delim_re.sub(unesc, match.group(2))
# the pattern allows for 6 regexp flags, so set them if necessary
flagin = match.group(3)
flags = 0
if flagin:
for flag in flagin.upper():
flags |= re.__dict__[flag]
try:
regexp = re.compile(regexp, flags)
interhg_table.append((regexp, format))
except re.error:
Martin Geisler
i18n: mark strings for translation in interhg extension
r6962 self.repo.ui.warn(_("interhg: invalid regexp for %s: %s\n")
Edward Lee
interhg: allow more flexible pattern specification (fixes 2/3 of issue699)...
r5288 % (key, regexp))
Wagner Bruna
interhg: fixes regression introduced by 38170eeed18c
r10472 return orig(self, *args, **kwargs)
OHASHI Hideya
interhg extension allows you to change changelog text like InterWiki.
r4817
Matt Mackall
extensions: use new wrapper functions
r7216 extensions.wrapfunction(hgweb_mod.hgweb, 'refresh', interhg_refresh)