Comments
Patch
@@ -260,6 +260,11 @@ class converter_sink(object):
"""
pass
+ def hascommitfrommap(self, rev):
+ """Return False if a rev mentioned in a filemap is known to not be
+ present."""
+ raise NotImplementedError
+
def hascommitforsplicemap(self, rev):
"""This method is for the special needs for splicemap handling and not
for general use. Returns True if the sink contains rev, aborts on some
@@ -253,6 +253,10 @@ class mercurial_sink(converter_sink):
destmarks[bookmark] = bin(updatedbookmark[bookmark])
destmarks.write()
+ def hascommitfrommap(self, rev):
+ # the exact semantics of clonebranches is unclear so we can't say no
+ return rev in self.repo or self.clonebranches
+
def hascommitforsplicemap(self, rev):
if rev not in self.repo and self.clonebranches:
raise util.Abort(_('revision %s not found in destination '
@@ -1300,6 +1300,11 @@ class svn_sink(converter_sink, commandli
self.ui.warn(_('writing Subversion tags is not yet implemented\n'))
return None, None
+ def hascommitfrommap(self, rev):
+ # We trust that revisions referenced in a map still is present
+ # TODO: implement something better if necessary and feasible
+ return True
+
def hascommitforsplicemap(self, rev):
# This is not correct as one can convert to an existing subversion
# repository and childmap would not list all revisions. Too bad.