comparison contrib/perf.py @ 30405:e77e8876886f

perf: omit copying ui and redirect to ferr if buffer API is in use This allow to get the output of contrib/perf.py commands using the ui.pushbuffer() API.
author Philippe Pepiot <philippe.pepiot@logilab.fr>
date Tue, 15 Nov 2016 16:10:57 +0100
parents 10c924596e5c
children 605e3b126d46
comparison
equal deleted inserted replaced
30404:a1beadaa4061 30405:e77e8876886f
134 # experimental config: perf.presleep 134 # experimental config: perf.presleep
135 time.sleep(getint(ui, "perf", "presleep", 1)) 135 time.sleep(getint(ui, "perf", "presleep", 1))
136 136
137 if opts is None: 137 if opts is None:
138 opts = {} 138 opts = {}
139 # redirect all to stderr 139 # redirect all to stderr unless buffer api is in use
140 ui = ui.copy() 140 if not ui._buffers:
141 uifout = safeattrsetter(ui, 'fout', ignoremissing=True) 141 ui = ui.copy()
142 if uifout: 142 uifout = safeattrsetter(ui, 'fout', ignoremissing=True)
143 # for "historical portability": 143 if uifout:
144 # ui.fout/ferr have been available since 1.9 (or 4e1ccd4c2b6d) 144 # for "historical portability":
145 uifout.set(ui.ferr) 145 # ui.fout/ferr have been available since 1.9 (or 4e1ccd4c2b6d)
146 uifout.set(ui.ferr)
146 147
147 # get a formatter 148 # get a formatter
148 uiformatter = getattr(ui, 'formatter', None) 149 uiformatter = getattr(ui, 'formatter', None)
149 if uiformatter: 150 if uiformatter:
150 fm = uiformatter('perf', opts) 151 fm = uiformatter('perf', opts)