mercurial/localrepo.py
changeset 11653 eefa362d0b45
parent 11652 08a269d9c4ca
child 11654 898a5305f342
equal deleted inserted replaced
11652:08a269d9c4ca 11653:eefa362d0b45
  1555         def gennodelst(log):
  1555         def gennodelst(log):
  1556             for r in log:
  1556             for r in log:
  1557                 if log.linkrev(r) in revset:
  1557                 if log.linkrev(r) in revset:
  1558                     yield log.node(r)
  1558                     yield log.node(r)
  1559 
  1559 
  1560         def lookuprevlink_func(revlog):
  1560         def lookuplinkrev_func(revlog):
  1561             def lookuprevlink(n):
  1561             def lookuplinkrev(n):
  1562                 return cl.node(revlog.linkrev(revlog.rev(n)))
  1562                 return cl.node(revlog.linkrev(revlog.rev(n)))
  1563             return lookuprevlink
  1563             return lookuplinkrev
  1564 
  1564 
  1565         def gengroup():
  1565         def gengroup():
  1566             '''yield a sequence of changegroup chunks (strings)'''
  1566             '''yield a sequence of changegroup chunks (strings)'''
  1567             # construct a list of all changed files
  1567             # construct a list of all changed files
  1568             changedfiles = set()
  1568             changedfiles = set()
  1577             self.ui.progress(_('bundling changes'), None)
  1577             self.ui.progress(_('bundling changes'), None)
  1578 
  1578 
  1579             mnfst = self.manifest
  1579             mnfst = self.manifest
  1580             nodeiter = gennodelst(mnfst)
  1580             nodeiter = gennodelst(mnfst)
  1581             cnt = 0
  1581             cnt = 0
  1582             for chnk in mnfst.group(nodeiter, lookuprevlink_func(mnfst)):
  1582             for chnk in mnfst.group(nodeiter, lookuplinkrev_func(mnfst)):
  1583                 self.ui.progress(_('bundling manifests'), cnt, unit=_('chunks'))
  1583                 self.ui.progress(_('bundling manifests'), cnt, unit=_('chunks'))
  1584                 cnt += 1
  1584                 cnt += 1
  1585                 yield chnk
  1585                 yield chnk
  1586             self.ui.progress(_('bundling manifests'), None)
  1586             self.ui.progress(_('bundling manifests'), None)
  1587 
  1587 
  1593                 nodeiter = gennodelst(filerevlog)
  1593                 nodeiter = gennodelst(filerevlog)
  1594                 nodeiter = list(nodeiter)
  1594                 nodeiter = list(nodeiter)
  1595                 if nodeiter:
  1595                 if nodeiter:
  1596                     yield changegroup.chunkheader(len(fname))
  1596                     yield changegroup.chunkheader(len(fname))
  1597                     yield fname
  1597                     yield fname
  1598                     lookup = lookuprevlink_func(filerevlog)
  1598                     lookup = lookuplinkrev_func(filerevlog)
  1599                     for chnk in filerevlog.group(nodeiter, lookup):
  1599                     for chnk in filerevlog.group(nodeiter, lookup):
  1600                         self.ui.progress(
  1600                         self.ui.progress(
  1601                             _('bundling files'), cnt, item=fname, unit=_('chunks'))
  1601                             _('bundling files'), cnt, item=fname, unit=_('chunks'))
  1602                         cnt += 1
  1602                         cnt += 1
  1603                         yield chnk
  1603                         yield chnk