diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -173,8 +173,12 @@ class converter(object): parents = {} while visit: n = visit.pop(0) - if n in known or n in self.map: + if n in known: continue + if n in self.map: + m = self.map[n] + if m == SKIPREV or self.dest.hascommitfrommap(m): + continue known.add(n) self.ui.progress(_('scanning'), len(known), unit=_('revisions')) commit = self.cachecommit(n) diff --git a/tests/test-convert-hg-sink.t b/tests/test-convert-hg-sink.t --- a/tests/test-convert-hg-sink.t +++ b/tests/test-convert-hg-sink.t @@ -526,8 +526,11 @@ Conversion after rollback scanning source... sorting... converting... + 0 extra f+a-only change $ hg -R a log -G -T '{rev} {desc|firstline} ({files})\n' + o 3 extra f+a-only change (f) + | o 2 x (f) | @ 1 a (f)