Manifest groups may be empty, so don't abort in this case (fixes issue210).
authorThomas Arendsen Hein <thomas@intevation.de>
Wed, 31 May 2006 22:25:20 +0200
changeset 2354 16276b1c0658
parent 2353 0c0bfea3f72a
child 2357 4a7bdb1e8dc1
Manifest groups may be empty, so don't abort in this case (fixes issue210). Only abort on empty changelog and file revlogs.
mercurial/localrepo.py
mercurial/revlog.py
--- a/mercurial/localrepo.py	Wed May 31 19:41:01 2006 +0200
+++ b/mercurial/localrepo.py	Wed May 31 22:25:20 2006 +0200
@@ -1510,7 +1510,8 @@
             self.ui.status(_("adding changesets\n"))
             cor = cl.count() - 1
             chunkiter = changegroup.chunkiter(source)
-            cl.addgroup(chunkiter, csmap, tr, 1) # unique
+            if cl.addgroup(chunkiter, csmap, tr, 1) is None:
+                raise util.Abort(_("received changelog group is empty"))
             cnr = cl.count() - 1
             changesets = cnr - cor
 
@@ -1522,6 +1523,10 @@
                 # pull off the manifest group
                 self.ui.status(_("adding manifests\n"))
                 chunkiter = changegroup.chunkiter(source)
+                # no need to check for empty manifest group here:
+                # if the result of the merge of 1 and 2 is the same in 3 and 4,
+                # no new manifest will be created and the manifest group will
+                # be empty during the pull
                 mf.addgroup(chunkiter, revmap, tr)
 
                 # process the files
@@ -1534,7 +1539,8 @@
                     fl = self.file(f)
                     o = fl.count()
                     chunkiter = changegroup.chunkiter(source)
-                    fl.addgroup(chunkiter, revmap, tr)
+                    if fl.addgroup(chunkiter, revmap, tr) is None:
+                        raise util.Abort(_("received file revlog group is empty"))
                     revisions += fl.count() - o
                     files += 1
 
--- a/mercurial/revlog.py	Wed May 31 19:41:01 2006 +0200
+++ b/mercurial/revlog.py	Wed May 31 22:25:20 2006 +0200
@@ -1196,8 +1196,6 @@
             start = self.start(base)
             end = self.end(t)
 
-        if node is None:
-            raise RevlogError(_("group to be added is empty"))
         return node
 
     def strip(self, rev, minlink):