subrepo: add argument to "diff()" to pass "ui" of caller side (issue3712) (API)
Color extension achieves colorization by overriding the class of
"ui" object just before command execution.
Before this patch, "diff()" of abstractsubrepo and classes
derived from it has no "ui" argument, so "diff()" of hgsubrepo
uses "self._repo.ui" to invoke "cmdutil.diffordiffstat()".
For separation of configuration between repositories, revision
573bec4ab7ba changed the initialization source of "self._repo.ui"
from "ui"(overridden) to "baseui"(plain) of parent repository.
And this caused break of colorization.
This patch adds "ui" argument to "diff()" of abstractsubrepo and
classes derived from it to pass "ui" object of caller side.
#!/usr/bin/env python
# Filter output by pyflakes to control which warnings we check
import sys, re, os
def makekey(message):
# "path/file:line: message"
match = re.search(r"(line \d+)", message)
line = ''
if match:
line = match.group(0)
message = re.sub(r"(line \d+)", '', message)
return re.sub(r"([^:]*):([^:]+):([^']*)('[^']*')(.*)$",
r'\3:\5:\4:\1:\2:' + line,
message)
lines = []
for line in sys.stdin:
# We whitelist tests
pats = [
r"imported but unused",
r"local variable '.*' is assigned to but never used",
r"unable to detect undefined names",
]
if not re.search('|'.join(pats), line):
continue
fn = line.split(':', 1)[0]
f = open(os.path.join(os.path.dirname(os.path.dirname(__file__)), fn))
data = f.read()
f.close()
if 'no-check-code' in data:
continue
lines.append(line)
for line in sorted(lines, key = makekey):
sys.stdout.write(line)
print