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 |