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.
--- 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):