##// END OF EJS Templates
ui: add option to timestamp status and diagnostic messages...
Joerg Sonnenberger -
r45564:24b1a8eb default
parent child Browse files
Show More
@@ -1384,6 +1384,9 b' coreconfigitem('
1384 b'ui', b'timeout.warn', default=0,
1384 b'ui', b'timeout.warn', default=0,
1385 )
1385 )
1386 coreconfigitem(
1386 coreconfigitem(
1387 b'ui', b'timestamp-output', default=False,
1388 )
1389 coreconfigitem(
1387 b'ui', b'traceback', default=False,
1390 b'ui', b'traceback', default=False,
1388 )
1391 )
1389 coreconfigitem(
1392 coreconfigitem(
@@ -9,6 +9,7 b' from __future__ import absolute_import'
9
9
10 import collections
10 import collections
11 import contextlib
11 import contextlib
12 import datetime
12 import errno
13 import errno
13 import getpass
14 import getpass
14 import inspect
15 import inspect
@@ -242,6 +243,7 b' class ui(object):'
242 self._terminfoparams = {}
243 self._terminfoparams = {}
243 self._styles = {}
244 self._styles = {}
244 self._uninterruptible = False
245 self._uninterruptible = False
246 self.showtimestamp = False
245
247
246 if src:
248 if src:
247 self._fout = src._fout
249 self._fout = src._fout
@@ -561,6 +563,7 b' class ui(object):'
561 self._reportuntrusted = self.debugflag or self.configbool(
563 self._reportuntrusted = self.debugflag or self.configbool(
562 b"ui", b"report_untrusted"
564 b"ui", b"report_untrusted"
563 )
565 )
566 self.showtimestamp = self.configbool(b'ui', b'timestamp-output')
564 self.tracebackflag = self.configbool(b'ui', b'traceback')
567 self.tracebackflag = self.configbool(b'ui', b'traceback')
565 self.logblockedtimes = self.configbool(b'ui', b'logblockedtimes')
568 self.logblockedtimes = self.configbool(b'ui', b'logblockedtimes')
566
569
@@ -1217,7 +1220,20 b' class ui(object):'
1217 ) * 1000
1220 ) * 1000
1218
1221
1219 def _writemsg(self, dest, *args, **opts):
1222 def _writemsg(self, dest, *args, **opts):
1223 timestamp = self.showtimestamp and opts.get('type') in {
1224 b'debug',
1225 b'error',
1226 b'note',
1227 b'status',
1228 b'warning',
1229 }
1230 if timestamp:
1231 args = (
1232 b'[%s] ' % bytes(datetime.datetime.now().isoformat(), 'ASCII'),
1233 ) + args
1220 _writemsgwith(self._write, dest, *args, **opts)
1234 _writemsgwith(self._write, dest, *args, **opts)
1235 if timestamp:
1236 dest.flush()
1221
1237
1222 def _writemsgnobuf(self, dest, *args, **opts):
1238 def _writemsgnobuf(self, dest, *args, **opts):
1223 _writemsgwith(self._writenobuf, dest, *args, **opts)
1239 _writemsgwith(self._writenobuf, dest, *args, **opts)
@@ -18,7 +18,8 b''
18 > @command(b'loop',
18 > @command(b'loop',
19 > [(b'', b'total', b'', b'override for total'),
19 > [(b'', b'total', b'', b'override for total'),
20 > (b'', b'nested', False, b'show nested results'),
20 > (b'', b'nested', False, b'show nested results'),
21 > (b'', b'parallel', False, b'show parallel sets of results')],
21 > (b'', b'parallel', False, b'show parallel sets of results'),
22 > (b'', b'warn', False, b'show warning if step divisible by 3')],
22 > b'hg loop LOOPS',
23 > b'hg loop LOOPS',
23 > norepo=True)
24 > norepo=True)
24 > def loop(ui, loops, **opts):
25 > def loop(ui, loops, **opts):
@@ -32,6 +33,7 b''
32 > if opts.get('nested', None):
33 > if opts.get('nested', None):
33 > nested = True
34 > nested = True
34 > loops = abs(loops)
35 > loops = abs(loops)
36 > showwarn = opts.get('warn', False)
35 >
37 >
36 > progress = ui.makeprogress(topiclabel, unit=b'loopnum', total=total)
38 > progress = ui.makeprogress(topiclabel, unit=b'loopnum', total=total)
37 > other = ui.makeprogress(b'other', unit=b'othernum', total=total)
39 > other = ui.makeprogress(b'other', unit=b'othernum', total=total)
@@ -48,6 +50,8 b''
48 > for j in range(nested_steps):
50 > for j in range(nested_steps):
49 > nested.update(j, item=b'nested.%d' % j)
51 > nested.update(j, item=b'nested.%d' % j)
50 > nested.complete()
52 > nested.complete()
53 > if showwarn and i % 3 == 0:
54 > ui.warn(b'reached step %d\n' %i)
51 > progress.complete()
55 > progress.complete()
52 >
56 >
53 > topiclabel = b'loop'
57 > topiclabel = b'loop'
@@ -179,6 +183,42 b" make sure things don't fall over if coun"
179 loop [ <=> ] 5/4\r (no-eol) (esc)
183 loop [ <=> ] 5/4\r (no-eol) (esc)
180 \r (no-eol) (esc)
184 \r (no-eol) (esc)
181
185
186 test interaction with ui.warn
187
188 $ hg loop --warn 6
189 \r (no-eol) (esc)
190 loop [ ] 0/6\r (no-eol) (esc)
191 \r (no-eol) (esc)
192 reached step 0
193 \r (no-eol) (esc)
194 loop [=======> ] 1/6\r (no-eol) (esc)
195 loop [===============> ] 2/6\r (no-eol) (esc)
196 loop [=======================> ] 3/6\r (no-eol) (esc)
197 \r (no-eol) (esc)
198 reached step 3
199 \r (no-eol) (esc)
200 loop [===============================> ] 4/6\r (no-eol) (esc)
201 loop [=======================================> ] 5/6\r (no-eol) (esc)
202 \r (no-eol) (esc)
203
204 test interaction with ui.timestamp-output
205
206 $ hg loop --warn --config ui.timestamp-output=true 6
207 \r (no-eol) (esc)
208 loop [ ] 0/6\r (no-eol) (esc)
209 \r (no-eol) (esc)
210 \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] reached step 0 (re)
211 \r (no-eol) (esc)
212 loop [=======> ] 1/6\r (no-eol) (esc)
213 loop [===============> ] 2/6\r (no-eol) (esc)
214 loop [=======================> ] 3/6\r (no-eol) (esc)
215 \r (no-eol) (esc)
216 \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] reached step 3 (re)
217 \r (no-eol) (esc)
218 loop [===============================> ] 4/6\r (no-eol) (esc)
219 loop [=======================================> ] 5/6\r (no-eol) (esc)
220 \r (no-eol) (esc)
221
182 test immediate progress completion
222 test immediate progress completion
183
223
184 $ hg -y loop 0
224 $ hg -y loop 0
@@ -142,9 +142,9 b' SEC: check for unsafe ssh url'
142 pulling from ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path
142 pulling from ssh://fakehost%7Ctouch%24%7BIFS%7Downed/path
143 abort: no suitable response from remote hg!
143 abort: no suitable response from remote hg!
144 [255]
144 [255]
145 $ hg pull 'ssh://fakehost%7Ctouch%20owned/path'
145 $ hg --config ui.timestamp-output=true pull 'ssh://fakehost%7Ctouch%20owned/path'
146 pulling from ssh://fakehost%7Ctouch%20owned/path
146 \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] pulling from ssh://fakehost%7Ctouch%20owned/path (re)
147 abort: no suitable response from remote hg!
147 \[20[2-9][0-9]-[01][0-9]-[0-3][0-9]T[0-5][0-9]:[0-5][0-9]:[0-5][0-9]\.[0-9][0-9][0-9][0-9][0-9][0-9]\] abort: no suitable response from remote hg! (re)
148 [255]
148 [255]
149
149
150 $ [ ! -f owned ] || echo 'you got owned'
150 $ [ ! -f owned ] || echo 'you got owned'
General Comments 0
You need to be logged in to leave comments. Login now