changeset 29711:ac5f6b11aa91

bundlerevlog: use for loop over iterator instead of while True The iter() builtin has a neat pattern where you give it a callable of no arguments and a sentinel value, and you can then loop over the function calls like a normal iterator. This cleans up the code a little.
author Augie Fackler <augie@google.com>
date Fri, 05 Aug 2016 13:09:50 -0400
parents 0839c8d34d78
children 9e88077f972c
files mercurial/bundlerepo.py
diffstat 1 files changed, 2 insertions(+), 4 deletions(-) [+]
line wrap: on
line diff
--- a/mercurial/bundlerepo.py	Fri Aug 05 13:09:24 2016 -0400
+++ b/mercurial/bundlerepo.py	Fri Aug 05 13:09:50 2016 -0400
@@ -56,10 +56,8 @@
         self.repotiprev = n - 1
         chain = None
         self.bundlerevs = set() # used by 'bundle()' revset expression
-        while True:
-            chunkdata = bundle.deltachunk(chain)
-            if not chunkdata:
-                break
+        getchunk = lambda: bundle.deltachunk(chain)
+        for chunkdata in iter(getchunk, {}):
             node = chunkdata['node']
             p1 = chunkdata['p1']
             p2 = chunkdata['p2']