mercurial/localrepo.py
changeset 13811 65c1d309ab91
parent 13810 0252abaafb8a
child 13812 2b70683888b9
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