Mercurial > hg
changeset 18673:f27598902007
blackbox: adds a 'blackbox' command for viewing recent logs
Adds a 'hg blackbox' command for viewing the latest entries in the blackbox log.
By default it shows the last 10 entries, but -l allows the user to specify.
author | Durham Goode <durham@fb.com> |
---|---|
date | Sat, 09 Feb 2013 09:09:46 -0800 |
parents | b2b4ddc55caa |
children | c61b49d059eb |
files | hgext/blackbox.py |
diffstat | 1 files changed, 28 insertions(+), 0 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/blackbox.py Sat Feb 09 09:04:48 2013 -0800 +++ b/hgext/blackbox.py Sat Feb 09 09:09:46 2013 -0800 @@ -75,3 +75,31 @@ return ui.setrepo(repo) + +@command('^blackbox', + [('l', 'limit', 10, _('the number of events to show')), + ], + _('hg blackbox [OPTION]...')) +def blackbox(ui, repo, *revs, **opts): + '''view the recent repository events + ''' + + if not os.path.exists(repo.join('blackbox.log')): + return + + limit = opts.get('limit') + blackbox = repo.opener('blackbox.log', 'r') + lines = blackbox.read().split('\n') + + count = 0 + output = [] + for line in reversed(lines): + if count >= limit: + break + + # count the commands by matching lines like: 2013/01/23 19:13:36 root> + if re.match('^\d{4}/\d{2}/\d{2} \d{2}:\d{2}:\d{2} .*> .*', line): + count += 1 + output.append(line) + + ui.status('\n'.join(reversed(output)))