rewrite-log
author Bryan O'Sullivan <bos@serpentine.com>
Thu, 25 Aug 2005 02:00:03 -0700
changeset 1057 2fd15d743b3b
parent 141 5f471a75d607
permissions -rw-r--r--
Add grep command. It currently searches all revs of every matching file. I'll change this soon so that it can still do this, but it will not be the default behaviour. Many options are unimplemented. There's only one output mode. Binary files are not handled yet.

#!/usr/bin/env python
import sys, os
from mercurial import hg

f = sys.argv[1]

r1 = hg.revlog(open, f + ".i", f + ".d")
r2 = hg.revlog(open, f + ".i2", f + ".d2")

tr = hg.transaction(open, "journal")

for i in xrange(r1.count()):
    n = r1.node(i)
    p1, p2 = r1.parents(n)
    l = r1.linkrev(n)
    t = r1.revision(n)
    n2 = r2.addrevision(t, tr, l, p1, p2)
tr.close()

os.rename(f + ".i", f + ".i.old")
os.rename(f + ".d", f + ".d.old")
os.rename(f + ".i2", f + ".i")
os.rename(f + ".d2", f + ".d")