Mercurial > hg
view tests/filtertraceback.py @ 50097:ca9d65d69c27 stable
dirstate-v2: complain early on docket name collision
The alternative is that the dirstate gets deleted so the
corruption persists and is hard to investigate.
This happened to me in tests, where the dirstate names
are taken from file, since the file got reverted.
I expect this can also happen in prod with non-trivial
probability (1/4 billion).
author | Arseniy Alekseyev <aalekseyev@janestreet.com> |
---|---|
date | Fri, 18 Nov 2022 13:51:40 +0000 |
parents | fe044ce4bb17 |
children |
line wrap: on
line source
#!/usr/bin/env python3 # Filters traceback lines from stdin. import io import sys if sys.version_info[0] >= 3: # Prevent \r from being inserted on Windows. sys.stdout = io.TextIOWrapper( sys.stdout.buffer, sys.stdout.encoding, sys.stdout.errors, newline="\n", line_buffering=sys.stdout.line_buffering, ) state = 'none' for line in sys.stdin: if state == 'none': if line.startswith('Traceback '): state = 'tb' elif state == 'tb': if line.startswith(' File '): state = 'file' continue elif not line.startswith(' '): state = 'none' elif not line.replace('^', '').replace('~', '').strip(): # PEP 657: Fine-grained error locations in tracebacks # ~~~~~~^^^^^^^^^ continue elif state == 'file': # Ignore lines after " File " state = 'tb' continue print(line, end='')