Mercurial > hg-stable
view tests/filterpyflakes.py @ 15904:7d28d6a67dd3
rebase: write series file without removed mq patches
Rebase will remove empty changesets and will also completely remove the mq
patch file for rebased empty patches.
Starting with b28004513977 (1.9) it would preserve guards by writing the old
series file back. That would however also reintroduce removed patch files in
the series file and the inconsistency would make qpop + qpush fail.
This patch backs out most of b28004513977 and makes sure guards are preserved
without reintroducing removed patches.
author | Mads Kiilerich <mads@kiilerich.com> |
---|---|
date | Tue, 17 Jan 2012 02:55:55 +0100 |
parents | 08d84bdce1a5 |
children | 77440de177f7 |
line wrap: on
line source
#!/usr/bin/env python # Filter output by pyflakes to control which warnings we check import sys, re, os def makekey(message): # "path/file:line: message" match = re.search(r"(line \d+)", message) line = '' if match: line = match.group(0) message = re.sub(r"(line \d+)", '', message) return re.sub(r"([^:]*):([^:]+):([^']*)('[^']*')(.*)$", r'\3:\5:\4:\1:\2:' + line, message) lines = [] for line in sys.stdin: # We whitelist tests pats = [ r"imported but unused", r"local variable '.*' is assigned to but never used", r"unable to detect undefined names", ] if not re.search('|'.join(pats), line): continue fn = line.split(':', 1)[0] f = open(os.path.join(os.path.dirname(os.path.dirname(__file__)), fn)) data = f.read() f.close() if 'no-check-code' in data: continue lines.append(line) for line in sorted(lines, key = makekey): sys.stdout.write(line) print