Manifest groups may be empty, so don't abort in this case (fixes
issue210).
Only abort on empty changelog and file revlogs.
--- 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):