extensions: recommend against using wrapfunction for repo methods
Instead, all extensions should use the "dynamic subclass" trick:
subclass repo.__class__ and then replace repo.__class__ with your new
subclass. This avoids conflicts that happen when one extension uses
wrapfunction and another uses subclassing to extend the same method of
localrepository.
hg: parse error at $HGRCPATH:1: invalid
updating to branch default
0 files updated, 0 files merged, 0 files removed, 0 files unresolved
[paths]
default = .../foo%bar
default = .../foo%bar
bundle.mainreporoot=.../foobar
paths.default=.../foo%bar
hg: parse error at $HGRCPATH:2: x = y
foo.bar=a\nb\nc\nde\nfg
foo.baz=bif cb
hg: parse error at $HGRCPATH:1: cannot include /path/to/nowhere/no-such-file (No such file or directory)
% username expansion
John Doe
ui.username=$FAKEUSER
% customized hgrc
read config from: .../.hgrc
.../.hgrc:13: alias.log=log -g
.../.hgrc:11: defaults.identify=-n
.../.hgrc:2: ui.debug=true
.../.hgrc:3: ui.fallbackencoding=ASCII
.../.hgrc:4: ui.quiet=true
.../.hgrc:5: ui.slash=true
.../.hgrc:6: ui.traceback=true
.../.hgrc:7: ui.verbose=true
.../.hgrc:8: ui.style=~/.hgstyle
.../.hgrc:9: ui.logtemplate={node}
% plain hgrc
read config from: .../.hgrc
none: ui.traceback=True
none: ui.verbose=False
none: ui.debug=True
none: ui.quiet=False