1371 # If the previous rev is one of the parents, |
1371 # If the previous rev is one of the parents, |
1372 # we only need to see a diff. |
1372 # we only need to see a diff. |
1373 deltamf = mnfst.readdelta(mnfstnode) |
1373 deltamf = mnfst.readdelta(mnfstnode) |
1374 # For each line in the delta |
1374 # For each line in the delta |
1375 for f, fnode in deltamf.iteritems(): |
1375 for f, fnode in deltamf.iteritems(): |
1376 f = changedfiles.get(f, None) |
|
1377 # And if the file is in the list of files we care |
1376 # And if the file is in the list of files we care |
1378 # about. |
1377 # about. |
1379 if f is not None: |
1378 if f in changedfiles: |
1380 # Get the changenode this manifest belongs to |
1379 # Get the changenode this manifest belongs to |
1381 clnode = msng_mnfst_set[mnfstnode] |
1380 clnode = msng_mnfst_set[mnfstnode] |
1382 # Create the set of filenodes for the file if |
1381 # Create the set of filenodes for the file if |
1383 # there isn't one already. |
1382 # there isn't one already. |
1384 ndset = msng_filenode_set.setdefault(f, {}) |
1383 ndset = msng_filenode_set.setdefault(f, {}) |
1433 |
1432 |
1434 # Now that we have all theses utility functions to help out and |
1433 # Now that we have all theses utility functions to help out and |
1435 # logically divide up the task, generate the group. |
1434 # logically divide up the task, generate the group. |
1436 def gengroup(): |
1435 def gengroup(): |
1437 # The set of changed files starts empty. |
1436 # The set of changed files starts empty. |
1438 changedfiles = {} |
1437 changedfiles = set() |
1439 collect = changegroup.collector(cl, msng_mnfst_set, changedfiles) |
1438 collect = changegroup.collector(cl, msng_mnfst_set, changedfiles) |
1440 |
1439 |
1441 # Create a changenode group generator that will call our functions |
1440 # Create a changenode group generator that will call our functions |
1442 # back to lookup the owning changenode and collect information. |
1441 # back to lookup the owning changenode and collect information. |
1443 group = cl.group(msng_cl_lst, identity, collect) |
1442 group = cl.group(msng_cl_lst, identity, collect) |
1484 if extranodes: |
1483 if extranodes: |
1485 for fname in extranodes: |
1484 for fname in extranodes: |
1486 if isinstance(fname, int): |
1485 if isinstance(fname, int): |
1487 continue |
1486 continue |
1488 msng_filenode_set.setdefault(fname, {}) |
1487 msng_filenode_set.setdefault(fname, {}) |
1489 changedfiles[fname] = 1 |
1488 changedfiles.add(fname) |
1490 # Go through all our files in order sorted by name. |
1489 # Go through all our files in order sorted by name. |
1491 cnt = 0 |
1490 cnt = 0 |
1492 for fname in sorted(changedfiles): |
1491 for fname in sorted(changedfiles): |
1493 filerevlog = self.file(fname) |
1492 filerevlog = self.file(fname) |
1494 if not len(filerevlog): |
1493 if not len(filerevlog): |
1564 return lookuprevlink |
1563 return lookuprevlink |
1565 |
1564 |
1566 def gengroup(): |
1565 def gengroup(): |
1567 '''yield a sequence of changegroup chunks (strings)''' |
1566 '''yield a sequence of changegroup chunks (strings)''' |
1568 # construct a list of all changed files |
1567 # construct a list of all changed files |
1569 changedfiles = {} |
1568 changedfiles = set() |
1570 mmfs = {} |
1569 mmfs = {} |
1571 collect = changegroup.collector(cl, mmfs, changedfiles) |
1570 collect = changegroup.collector(cl, mmfs, changedfiles) |
1572 |
1571 |
1573 cnt = 0 |
1572 cnt = 0 |
1574 for chnk in cl.group(nodes, identity, collect): |
1573 for chnk in cl.group(nodes, identity, collect): |