# HG changeset patch # User FUJIWARA Katsunori # Date 2016-10-08 16:03:19 # Node ID 04f2b980df3cfb2defbd5572b205032a233e479f # Parent 423bf74d2e5bb032dd939c96bdd767a244b5dff5 perf: omit copying from ui.ferr to ui.fout for Mercurial earlier than 1.9 Before this patch, referring ui.ferr prevents perf.py from measuring performance with Mercurial earlier than 1.9 (or 4e1ccd4c2b6d), because ui.ferr isn't available in such Mercurial, even though there are some code paths for Mercurial earlier than 1.9 in perf.py. For example, setting "_prereadsize" attribute in perfindex() and perfnodelookup() is effective only with hg earlier than 1.8 (or 61c9bc3da402). diff --git a/contrib/perf.py b/contrib/perf.py --- a/contrib/perf.py +++ b/contrib/perf.py @@ -137,7 +137,11 @@ def gettimer(ui, opts=None): opts = {} # redirect all to stderr ui = ui.copy() - ui.fout = ui.ferr + uifout = safeattrsetter(ui, 'fout', ignoremissing=True) + if uifout: + # for "historical portability": + # ui.fout/ferr have been available since 1.9 (or 4e1ccd4c2b6d) + uifout.set(ui.ferr) # get a formatter uiformatter = getattr(ui, 'formatter', None)