diff contrib/undumprevlog @ 6433:ec5d77eb3431

add simple dump and undump scripts to contrib/
author Matt Mackall <mpm@selenic.com>
date Mon, 31 Mar 2008 21:49:32 -0500
parents
children 9c426da6b03b
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/contrib/undumprevlog	Mon Mar 31 21:49:32 2008 -0500
@@ -0,0 +1,34 @@
+#!/usr/bin/env python
+# Undump a dump from dumprevlog
+# $ hg init
+# $ undumprevlog < repo.dump
+
+import sys
+from mercurial import revlog, node, util, transaction
+
+opener = util.opener('.', False)
+tr = transaction.transaction(sys.stderr.write, opener, "undump.journal")
+while 1:
+    l = sys.stdin.readline()
+    if not l:
+        break
+    if l.startswith("file:"):
+        f = l[6:-1]
+        r = revlog.revlog(opener, f)
+        print f
+    elif l.startswith("node:"):
+        n = node.bin(l[6:-1])
+    elif l.startswith("linkrev:"):
+        lr = int(l[9:-1])
+    elif l.startswith("parents:"):
+        p = l[9:-1].split()
+        p1 = node.bin(p[0])
+        p2 = node.bin(p[1])
+    elif l.startswith("length:"):
+        length = int(l[8:-1])
+        sys.stdin.readline() # start marker
+        d = sys.stdin.read(length)
+        sys.stdin.readline() # end marker
+        r.addrevision(d, tr, lr, p1, p2)
+
+tr.close()