changegroup: don't fail on empty changegroup (API)
authorMartin von Zweigbergk <martinvonz@google.com>
Fri, 30 Jun 2017 23:58:59 -0700
changeset 33309 69c4493a54f9
parent 33308 248d5890c80a
child 33310 b4d517d736a1
changegroup: don't fail on empty changegroup (API) I don't know why applying an empty changegroup should be an error. It seems harmless. I suspect the check was there to find code that creates empty changegroups just because that would be wasteful. Let's use develwarn() for that instead, so we catch any such cases that run with our test runner, but we still allow others to generate empty changegroups if they want to. We have run into this check at Google once or twice and had to work around it, but I'm changing this not so much because of that, but because it seems like it shouldn't be an error. I also changed the message slightly to be more modern ("changelog group" -> "changegroup") and more generic ("received" -> "applied").
mercurial/changegroup.py
--- a/mercurial/changegroup.py	Sat Jul 01 00:00:09 2017 -0700
+++ b/mercurial/changegroup.py	Fri Jun 30 23:58:59 2017 -0700
@@ -298,7 +298,8 @@
             efiles = len(efiles)
 
             if not cgnodes:
-                raise error.Abort(_("received changelog group is empty"))
+                repo.ui.develwarn('applied empty changegroup',
+                                  config='empty-changegroup')
             clend = len(cl)
             changesets = clend - clstart
             repo.ui.progress(_('changesets'), None)