view contrib/rewrite-log @ 7090:7b5c063b0b94

diff: pass contexts to status Allow status() to take contexts as well as nodes. This lets us avoid unpacking manifests multiple times and intelligently unpack manifests in revision order. Also, we can avoid unpacking manifests at all when there are no changes in the working directory.
author Matt Mackall <mpm@selenic.com>
date Sun, 12 Oct 2008 15:21:08 -0500
parents 9ccc6be9ae4d
children
line wrap: on
line source

#!/usr/bin/env python
import sys, os
from mercurial import revlog, transaction, node, util

f = sys.argv[1]

r1 = revlog.revlog(util.opener(os.getcwd(), audit=False), f + ".i", f + ".d")
r2 = revlog.revlog(util.opener(os.getcwd(), audit=False), f + ".i2", f + ".d2")

tr = transaction.transaction(sys.stderr.write, 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")