Mercurial > hg
annotate rewrite-log @ 1806:a2c69737e65e
Automatic nesting into running transactions in the same repository.
This associates a transaction handle with a given repository object, and
any additional calls to start new transactions reuse that transaction.
For the 2700 patch import run, this brings the system time down from
1m20s to 50s, mostly by skipping backups of the dirstate file.
(note, this patch does not change hg import to use the nested transaction,
mq is the only user right now)
author | mason@suse.com |
---|---|
date | Tue, 28 Feb 2006 12:24:54 -0600 |
parents | 5f471a75d607 |
children |
rev | line source |
---|---|
141 | 1 #!/usr/bin/env python |
2 import sys, os | |
3 from mercurial import hg | |
4 | |
5 f = sys.argv[1] | |
6 | |
7 r1 = hg.revlog(open, f + ".i", f + ".d") | |
8 r2 = hg.revlog(open, f + ".i2", f + ".d2") | |
9 | |
10 tr = hg.transaction(open, "journal") | |
11 | |
12 for i in xrange(r1.count()): | |
13 n = r1.node(i) | |
14 p1, p2 = r1.parents(n) | |
15 l = r1.linkrev(n) | |
16 t = r1.revision(n) | |
17 n2 = r2.addrevision(t, tr, l, p1, p2) | |
18 tr.close() | |
19 | |
20 os.rename(f + ".i", f + ".i.old") | |
21 os.rename(f + ".d", f + ".d.old") | |
22 os.rename(f + ".i2", f + ".i") | |
23 os.rename(f + ".d2", f + ".d") |