mercurial --> plain text --> mercurial
didier deshommes
dfdeshom at gmail.com
Thu Mar 27 11:56:06 CDT 2008
Matt Mackall <mpm <at> selenic.com> writes:
>
>
> On Thu, 2008-03-27 at 14:24 +0000, didier deshommes wrote:
> > Hi everyone,
> > Sage (http://www.sagemath.org/) uses hg for its source control and recently a
> > question has come up about the possibility of doing the following:
> >
> > (1) export everything in the .hg repo to something (perhaps a ton of
> > stuff) in plain text format,
> > (2) delete .hg/ directory
> > (3) do something that recovers the .hg/ directory from the output of (1).
>
> This will work for the export side:
>
> #!/usr/bin/env python
> import sys
> from mercurial import revlog, node
>
> for f in sys.argv[1:]:
> r = revlog.revlog(open, f)
> print "file:", f
> for i in xrange(r.count()):
> n = r.node(i)
> p = r.parents(i)
> d = r.revision(n)
> print "node:", node.hex(n)
> print "linkrev:", r.linkrev(n)
> print "parents:", node.hex(p[0]), node.hex(p[1])
> print "length:", len(d)
> print "-start-"
> print d
> print "-end-"
>
> Then you can do something like:
>
> find .hg/store -name "*.i" | xargs ./dumprevlog > repo.dump
Hi Matt,
Thanks for the script. we don't have .hg/store, but we don have .hg/data. We
still got this error:
"""
dfdeshom at sage:~/custom/sage/devel/sage-hg$ find .hg/data -name "*.i" | xargs
./dumprevlog > repo.dump
Traceback (most recent call last):
File "./dumprevlog", line 10, in <module>
p = r.parents(i)
File "/home/dfdeshom/bin/hg/lib/python2.5/site-packages/mercurial/revlog.py",
line 528, in parents
d = self.index[self.rev(node)][5:7]
File "/home/dfdeshom/bin/hg/lib/python2.5/site-packages/mercurial/revlog.py",
line 522, in rev
raise LookupError(node, self.indexfile, _('no node'))
mercurial.revlog.LookupError: .hg/data/c_lib/ChangeLog.i at 0: no node
dfdeshom at sage:~/custom/sage/devel/sage-hg$ hg --version
Mercurial Distributed SCM (version 1.0)
"""
Any suggestions?
didier
More information about the Mercurial
mailing list