Mercurial > hg
diff hgext/convert/__init__.py @ 5374:e710874247d1
convert: allow the converter_source to say "skip this revision"
If getchanges returns a string, it's assumed to be the id of an
already converted revision. We map the current revision to the same
revision this converted revision was mapped to.
To allow skipping a root revision, getchanges can return the special
string 'hg-convert-skipped-revision' (a.k.a. common.SKIPREV), which
hopefully won't clash with any real id.
The converter_source is responsible for rewriting the parents of the
commit objects to make sure the revision graph makes sense.
author | Alexis S. L. Carvalho <alexis@cecm.usp.br> |
---|---|
date | Thu, 04 Oct 2007 23:21:37 -0300 |
parents | 6aba1835a7b3 |
children | dae323e453aa |
line wrap: on
line diff
--- a/hgext/convert/__init__.py Thu Oct 04 23:21:37 2007 -0300 +++ b/hgext/convert/__init__.py Thu Oct 04 23:21:37 2007 -0300 @@ -5,7 +5,7 @@ # This software may be used and distributed according to the terms # of the GNU General Public License, incorporated herein by reference. -from common import NoRepo, converter_source, converter_sink +from common import NoRepo, SKIPREV, converter_source, converter_sink from cvs import convert_cvs from darcs import darcs_source from git import convert_git @@ -202,7 +202,15 @@ do_copies = hasattr(self.dest, 'copyfile') filenames = [] - files, copies = self.source.getchanges(rev) + changes = self.source.getchanges(rev) + if isinstance(changes, basestring): + if changes == SKIPREV: + dest = SKIPREV + else: + dest = self.map[changes] + self.mapentry(rev, dest) + return + files, copies = changes parents = [self.map[r] for r in commit.parents] if commit.parents: prev = commit.parents[0] @@ -263,7 +271,7 @@ ctags = {} for k in tags: v = tags[k] - if v in self.map: + if self.map.get(v, SKIPREV) != SKIPREV: ctags[k] = self.map[v] if c and ctags: