# HG changeset patch # User Pulkit Goyal # Date 1556365423 -10800 # Node ID d0e773ad907784c0479499e3a33e93d746d42e7a # Parent 9893d7aa7420d3ab927daba6cada0f364328cacd discovery: only calculate closed branches if required The number of new closed branches is required for printing in error message. So let's only calculate them if we need to print error about new branches. Differential Revision: https://phab.mercurial-scm.org/D6314 diff -r 9893d7aa7420 -r d0e773ad9077 mercurial/discovery.py --- a/mercurial/discovery.py Sat Apr 27 02:13:43 2019 +0300 +++ b/mercurial/discovery.py Sat Apr 27 14:43:43 2019 +0300 @@ -340,15 +340,15 @@ pushop.pushbranchmap = headssum newbranches = [branch for branch, heads in headssum.iteritems() if heads[0] is None] - # Makes a set of closed branches - closedbranches = set() - for tag, heads, tip, isclosed in repo.branchmap().iterbranches(): - if isclosed: - closedbranches.add(tag) - closedbranches = (closedbranches & set(newbranches)) # 1. Check for new branches on the remote. if newbranches and not newbranch: # new branch requires --new-branch branchnames = ', '.join(sorted(newbranches)) + # Calculate how many of the new branches are closed branches + closedbranches = set() + for tag, heads, tip, isclosed in repo.branchmap().iterbranches(): + if isclosed: + closedbranches.add(tag) + closedbranches = (closedbranches & set(newbranches)) if closedbranches: errmsg = (_("push creates new remote branches: %s (%d closed)!") % (branchnames, len(closedbranches)))