convert: remove restriction on multiple --rev in hg source
Multiple --rev args on convert is a new feature, and was initially disabled for
all sources. It has since been enabled on git sources, and this patch enables it
on mercurial sources.
--- a/hgext/convert/hg.py Fri Sep 04 02:51:57 2015 +0800
+++ b/hgext/convert/hg.py Thu Sep 03 10:29:42 2015 -0700
@@ -431,9 +431,6 @@
class mercurial_source(converter_source):
def __init__(self, ui, path, revs=None):
converter_source.__init__(self, ui, path, revs)
- if revs and len(revs) > 1:
- raise util.Abort(_("mercurial source does not support specifying "
- "multiple revisions"))
self.ignoreerrors = ui.configbool('convert', 'hg.ignoreerrors', False)
self.ignored = set()
self.saverev = ui.configbool('convert', 'hg.saverev', False)
@@ -468,7 +465,7 @@
else:
self.keep = util.always
if revs:
- self._heads = [self.repo[revs[0]].node()]
+ self._heads = [self.repo[r].node() for r in revs]
else:
self._heads = self.repo.heads()
else:
--- a/tests/test-convert-hg-startrev.t Fri Sep 04 02:51:57 2015 +0800
+++ b/tests/test-convert-hg-startrev.t Thu Sep 03 10:29:42 2015 -0700
@@ -201,4 +201,23 @@
|
o 0 "0: add a b f" files: a b f
- $ cd ..
+Convert from specified revs
+
+ $ hg convert --rev 3 --rev 2 source multiplerevs
+ initializing destination multiplerevs repository
+ scanning source...
+ sorting...
+ converting...
+ 3 0: add a b f
+ 2 1: add c, move f to d
+ 1 2: copy e from a, change b
+ 0 3: change a
+ $ glog multiplerevs
+ o 3 "3: change a" files: a
+ |
+ | o 2 "2: copy e from a, change b" files: b e
+ | |
+ | o 1 "1: add c, move f to d" files: c d f
+ |/
+ o 0 "0: add a b f" files: a b f
+