Mercurial > public > mercurial-scm > hg
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) |