mercurial/localrepo.py
changeset 13712 c4706accf310
parent 13710 cb8d0bc8c021
child 13713 ee4f7109457e
equal deleted inserted replaced
13711:ed913fd7837b 13712:c4706accf310
  1471             # does this by assuming the a filenode belongs to the changenode
  1471             # does this by assuming the a filenode belongs to the changenode
  1472             # the first manifest that references it belongs to.
  1472             # the first manifest that references it belongs to.
  1473             def collect(mnode):
  1473             def collect(mnode):
  1474                 r = mf.rev(mnode)
  1474                 r = mf.rev(mnode)
  1475                 clnode = mfs[mnode]
  1475                 clnode = mfs[mnode]
  1476                 if mf.deltaparent(r) in mf.parentrevs(r):
  1476                 mdata = mf.readfast(mnode)
  1477                     # If the previous rev is one of the parents,
  1477                 for f in changedfiles:
  1478                     # we only need to see a diff.
  1478                     if f in mdata:
  1479                     deltamf = mf.readdelta(mnode)
  1479                         fnodes.setdefault(f, {}).setdefault(mdata[f], clnode)
  1480                     # For each line in the delta
  1480 
  1481                     for f, fnode in deltamf.iteritems():
       
  1482                         # And if the file is in the list of files we care
       
  1483                         # about.
       
  1484                         if f in changedfiles:
       
  1485                             # Create the set of filenodes for the file if
       
  1486                             # there isn't one already.
       
  1487                             fnodes.setdefault(f, {}).setdefault(fnode, clnode)
       
  1488                 else:
       
  1489                     # Otherwise we need a full manifest.
       
  1490                     m = mf.read(mnode)
       
  1491                     # For every file in we care about.
       
  1492                     for f in changedfiles:
       
  1493                         if f in m:
       
  1494                             fnodes.setdefault(f, {}).setdefault(m[f], clnode)
       
  1495             return collect
  1481             return collect
  1496 
  1482 
  1497         # If we determine that a particular file or manifest node must be a
  1483         # If we determine that a particular file or manifest node must be a
  1498         # node that the recipient of the changegroup will already have, we can
  1484         # node that the recipient of the changegroup will already have, we can
  1499         # also assume the recipient will have all the parents.  This function
  1485         # also assume the recipient will have all the parents.  This function