Mercurial > hg
view contrib/undumprevlog @ 21707:e22cfd1ae97c stable
keyword: suppress keyword expansion while 'hg histedit' for internal merge
Before this patch, 'hg histedit' may cause unexpected conflict, if 'hg
histedit'-ed changes are located near lines in which keywords are
embedded, because keywords are substituted with other strings in the
working directory.
This patch suppresses keyword expansion while 'hg histedit' for
internal merge by adding 'histedit' to 'restricted' command list like
'merge'.
Test in this patch just swaps order of revision #13 and #14: this is
enough to cause internal merge.
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Thu, 05 Jun 2014 16:47:14 +0900 |
parents | cba222f01056 |
children | 5bd1f6572db0 |
line wrap: on
line source
#!/usr/bin/env python # Undump a dump from dumprevlog # $ hg init # $ undumprevlog < repo.dump import sys from mercurial import revlog, node, scmutil, util, transaction for fp in (sys.stdin, sys.stdout, sys.stderr): util.setbinary(fp) opener = scmutil.opener('.', False) tr = transaction.transaction(sys.stderr.write, opener, "undump.journal") while True: 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()