convert: add config to not convert tags
In some cases we do not want to convert tags from the source repo to be tags in
the target repo (for instance, in a large repository, hgtags cause scaling
issues so we want to avoid them). This adds a config option to disable
converting tags.
--- a/hgext/convert/__init__.py Thu Jul 02 22:18:21 2015 +0900
+++ b/hgext/convert/__init__.py Mon Jun 29 13:40:20 2015 -0700
@@ -355,6 +355,14 @@
: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)
--- a/hgext/convert/convcmd.py Thu Jul 02 22:18:21 2015 +0900
+++ b/hgext/convert/convcmd.py Mon Jun 29 13:40:20 2015 -0700
@@ -460,22 +460,23 @@
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 = {}
--- a/tests/test-convert-tagsbranch-topology.t Thu Jul 02 22:18:21 2015 +0900
+++ b/tests/test-convert-tagsbranch-topology.t Mon Jun 29 13:40:20 2015 -0700
@@ -45,6 +45,19 @@
$ 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
--- a/tests/test-convert.t Thu Jul 02 22:18:21 2015 +0900
+++ b/tests/test-convert.t Mon Jun 29 13:40:20 2015 -0700
@@ -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