convert: make contents of "extra" dict available from sources, for sinks.
authorBryan O'Sullivan <bos@serpentine.com>
Wed, 10 Oct 2007 15:30:00 -0700
changeset 5439 d0c67b52ac01
parent 5438 6fa5258be3d4
child 5440 b4ae8535f834
convert: make contents of "extra" dict available from sources, for sinks. This breaks hash preservation for hg->hg conversion, as each converted change gets a convert_revision item added to its extra dict. Ugh.
hgext/convert/common.py
hgext/convert/hg.py
mercurial/context.py
--- a/hgext/convert/common.py	Wed Oct 10 15:30:00 2007 -0700
+++ b/hgext/convert/common.py	Wed Oct 10 15:30:00 2007 -0700
@@ -20,13 +20,15 @@
 SKIPREV = 'SKIP'
 
 class commit(object):
-    def __init__(self, author, date, desc, parents, branch=None, rev=None):
+    def __init__(self, author, date, desc, parents, branch=None, rev=None,
+                 extra={}):
         self.author = author
         self.date = date
         self.desc = desc
         self.parents = parents
         self.branch = branch
         self.rev = rev
+        self.extra = extra
 
 class converter_source(object):
     """Conversion source interface"""
--- a/hgext/convert/hg.py	Wed Oct 10 15:30:00 2007 -0700
+++ b/hgext/convert/hg.py	Wed Oct 10 15:30:00 2007 -0700
@@ -108,7 +108,7 @@
         p2 = parents.pop(0)
 
         text = commit.desc
-        extra = {}
+        extra = commit.extra.copy()
         if self.branchnames and commit.branch:
             extra['branch'] = commit.branch
         if commit.rev:
@@ -230,7 +230,7 @@
         parents = [hex(p.node()) for p in ctx.parents() if p.node() != nullid]
         return commit(author=ctx.user(), date=util.datestr(ctx.date()),
                       desc=ctx.description(), parents=parents,
-                      branch=ctx.branch())
+                      branch=ctx.branch(), extra=ctx.extra())
 
     def gettags(self):
         tags = [t for t in self.repo.tagslist() if t[0] != 'tip']
--- a/mercurial/context.py	Wed Oct 10 15:30:00 2007 -0700
+++ b/mercurial/context.py	Wed Oct 10 15:30:00 2007 -0700
@@ -82,6 +82,7 @@
     def files(self): return self._changeset[3]
     def description(self): return self._changeset[4]
     def branch(self): return self._changeset[5].get("branch")
+    def extra(self): return self._changeset[5]
     def tags(self): return self._repo.nodetags(self._node)
 
     def parents(self):