status: pass matcher to pathcopies()
Just like
a7f8e3584ef3 (diff: pass the diff matcher to the copy logic,
2015-04-16) sped up 'hg diff --git $path', let's speed up 'hg st -C
$path'. On the Firefox repo, this speeds up
hg st --rev tip~40000 --rev tip -C python
from 16s to 1.8s. Those two revisions differ in 100k files, out of
which 1k is in python/.
#!/usr/bin/env python
# Dump revlogs as raw data stream
# $ find .hg/store/ -name "*.i" | xargs dumprevlog > repo.dump
import sys
from mercurial import revlog, node, util
for fp in (sys.stdin, sys.stdout, sys.stderr):
util.setbinary(fp)
for f in sys.argv[1:]:
binopen = lambda fn: open(fn, 'rb')
r = revlog.revlog(binopen, f)
print "file:", f
for i in r:
n = r.node(i)
p = r.parents(n)
d = r.revision(n)
print "node:", node.hex(n)
print "linkrev:", r.linkrev(i)
print "parents:", node.hex(p[0]), node.hex(p[1])
print "length:", len(d)
print "-start-"
print d
print "-end-"