diff --git a/hgext/convert/__init__.py b/hgext/convert/__init__.py --- a/hgext/convert/__init__.py +++ b/hgext/convert/__init__.py @@ -355,6 +355,14 @@ def convert(ui, src, dest=None, revmapfi :convert.hg.usebranchnames: preserve branch names. The default is True. + + All Destinations + ################ + + All destination types accept the following options: + + :convert.skiptags: does not convert tags from the source repo to the target + repo. The default is False. """ return convcmd.convert(ui, src, dest, revmapfile, **opts) diff --git a/hgext/convert/convcmd.py b/hgext/convert/convcmd.py --- a/hgext/convert/convcmd.py +++ b/hgext/convert/convcmd.py @@ -460,22 +460,23 @@ class converter(object): self.copy(c) self.ui.progress(_('converting'), None) - tags = self.source.gettags() - ctags = {} - for k in tags: - v = tags[k] - if self.map.get(v, SKIPREV) != SKIPREV: - ctags[k] = self.map[v] + if not self.ui.configbool('convert', 'skiptags'): + tags = self.source.gettags() + ctags = {} + for k in tags: + v = tags[k] + if self.map.get(v, SKIPREV) != SKIPREV: + ctags[k] = self.map[v] - if c and ctags: - nrev, tagsparent = self.dest.puttags(ctags) - if nrev and tagsparent: - # write another hash correspondence to override the previous - # one so we don't end up with extra tag heads - tagsparents = [e for e in self.map.iteritems() - if e[1] == tagsparent] - if tagsparents: - self.map[tagsparents[0][0]] = nrev + if c and ctags: + nrev, tagsparent = self.dest.puttags(ctags) + if nrev and tagsparent: + # write another hash correspondence to override the + # previous one so we don't end up with extra tag heads + tagsparents = [e for e in self.map.iteritems() + if e[1] == tagsparent] + if tagsparents: + self.map[tagsparents[0][0]] = nrev bookmarks = self.source.getbookmarks() cbookmarks = {} diff --git a/tests/test-convert-tagsbranch-topology.t b/tests/test-convert-tagsbranch-topology.t --- a/tests/test-convert-tagsbranch-topology.t +++ b/tests/test-convert-tagsbranch-topology.t @@ -45,6 +45,19 @@ Build a GIT repo with at least 1 tag $ action tag -m "tag1" tag1 $ cd .. +Convert without tags + + $ hg convert git-repo hg-repo --config convert.skiptags=True + initializing destination hg-repo repository + scanning source... + sorting... + converting... + 0 rev1 + updating bookmarks + $ hg -R hg-repo tags + tip 0:d98c8ad3a4cf + $ rm -rf hg-repo + Do a first conversion $ convertrepo diff --git a/tests/test-convert.t b/tests/test-convert.t --- a/tests/test-convert.t +++ b/tests/test-convert.t @@ -295,6 +295,15 @@ convert.hg.usebranchnames preserve branch names. The default is True. + All Destinations + ################ + + All destination types accept the following options: + + convert.skiptags + does not convert tags from the source repo to the target + repo. The default is False. + options: -s --source-type TYPE source repository type