Mercurial > hg
view tests/filtertraceback.py @ 50004:3c34a224c232
locking: take the `wlock` for the full `hg add` duration
Otherwise, there is a race condition window between the time we resolve the
file to add with the matcher and the time we lock the repo and modify the
dirstate.
For example, the working copy might have been updated away, or purged, and the
matched files would no longer be correct.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Tue, 13 Dec 2022 04:21:27 +0100 |
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='')