diff -r 716d575df275 -r 896fb9deeaf8 mercurial/upgrade.py --- a/mercurial/upgrade.py Wed Jun 12 14:22:49 2019 +0100 +++ b/mercurial/upgrade.py Sat Jul 27 19:58:17 2019 +0200 @@ -554,9 +554,11 @@ crawsize = 0 cdstsize = 0 + alldatafiles = list(srcrepo.store.walk()) + # Perform a pass to collect metadata. This validates we can open all # source files and allows a unified progress bar to be displayed. - for unencoded, encoded, size in srcrepo.store.walk(): + for unencoded, encoded, size in alldatafiles: if unencoded.endswith('.d'): continue @@ -607,7 +609,7 @@ # Do the actual copying. # FUTURE this operation can be farmed off to worker processes. seen = set() - for unencoded, encoded, size in srcrepo.store.walk(): + for unencoded, encoded, size in alldatafiles: if unencoded.endswith('.d'): continue