comparison mercurial/localrepo.py @ 13811:65c1d309ab91

changegroup: remove nodeiter temporary
author Matt Mackall <mpm@selenic.com>
date Thu, 31 Mar 2011 09:56:27 -0500
parents 0252abaafb8a
children 2b70683888b9
comparison
equal deleted inserted replaced
13810:0252abaafb8a 13811:65c1d309ab91
1619 efiles = len(changedfiles) 1619 efiles = len(changedfiles)
1620 changecount = count[0] 1620 changecount = count[0]
1621 self.ui.progress(_('bundling'), None) 1621 self.ui.progress(_('bundling'), None)
1622 1622
1623 mnfst = self.manifest 1623 mnfst = self.manifest
1624 nodeiter = gennodelst(mnfst)
1625 count = [0] 1624 count = [0]
1626 def mlookup(revlog, x): 1625 def mlookup(revlog, x):
1627 count[0] += 1 1626 count[0] += 1
1628 self.ui.progress(_('bundling'), count[0], 1627 self.ui.progress(_('bundling'), count[0],
1629 unit=_('manifests'), total=changecount) 1628 unit=_('manifests'), total=changecount)
1630 return cl.node(revlog.linkrev(revlog.rev(x))) 1629 return cl.node(revlog.linkrev(revlog.rev(x)))
1631 1630
1632 for chunk in mnfst.group(nodeiter, mlookup): 1631 for chunk in mnfst.group(gennodelst(mnfst), mlookup):
1633 yield chunk 1632 yield chunk
1634 self.ui.progress(_('bundling'), None) 1633 self.ui.progress(_('bundling'), None)
1635 1634
1636 for idx, fname in enumerate(sorted(changedfiles)): 1635 for idx, fname in enumerate(sorted(changedfiles)):
1637 filerevlog = self.file(fname) 1636 filerevlog = self.file(fname)
1638 if not len(filerevlog): 1637 if not len(filerevlog):
1639 raise util.Abort(_("empty or missing revlog for %s") % fname) 1638 raise util.Abort(_("empty or missing revlog for %s") % fname)
1640 first = True 1639 first = True
1641 nodeiter = gennodelst(filerevlog)
1642 def flookup(revlog, x): 1640 def flookup(revlog, x):
1643 self.ui.progress( 1641 self.ui.progress(
1644 _('bundling'), idx, item=fname, 1642 _('bundling'), idx, item=fname,
1645 total=efiles, unit=_('files')) 1643 total=efiles, unit=_('files'))
1646 return cl.node(revlog.linkrev(revlog.rev(x))) 1644 return cl.node(revlog.linkrev(revlog.rev(x)))
1647 1645
1648 for chunk in filerevlog.group(nodeiter, flookup): 1646 for chunk in filerevlog.group(gennodelst(filerevlog), flookup):
1649 if first: 1647 if first:
1650 if chunk == changegroup.closechunk(): 1648 if chunk == changegroup.closechunk():
1651 break 1649 break
1652 yield changegroup.chunkheader(len(fname)) 1650 yield changegroup.chunkheader(len(fname))
1653 yield fname 1651 yield fname