changeset 2354:16276b1c0658

Manifest groups may be empty, so don't abort in this case (fixes issue210). Only abort on empty changelog and file revlogs.
author Thomas Arendsen Hein <thomas@intevation.de>
date Wed, 31 May 2006 22:25:20 +0200
parents 0c0bfea3f72a
children 4a7bdb1e8dc1
files mercurial/localrepo.py mercurial/revlog.py
diffstat 2 files changed, 8 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- 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):