Show More
@@ -1479,6 +1479,7 b' class localrepository(repo.repository):' | |||
|
1479 | 1479 | mfs = {} # needed manifests |
|
1480 | 1480 | fnodes = {} # needed file nodes |
|
1481 | 1481 | changedfiles = set() |
|
1482 | count = [0] | |
|
1482 | 1483 | |
|
1483 | 1484 | # can we go through the fast path ? |
|
1484 | 1485 | heads.sort() |
@@ -1495,42 +1496,38 b' class localrepository(repo.repository):' | |||
|
1495 | 1496 | if revlog.linkrev(revlog.rev(n)) not in commonrevs: |
|
1496 | 1497 | yield n |
|
1497 | 1498 | |
|
1499 | def clookup(revlog, x): | |
|
1500 | c = cl.read(x) | |
|
1501 | changedfiles.update(c[3]) | |
|
1502 | mfs.setdefault(c[0], x) | |
|
1503 | count[0] += 1 | |
|
1504 | self.ui.progress(_('bundling'), count[0], unit=_('changesets')) | |
|
1505 | return x | |
|
1506 | ||
|
1507 | def mlookup(revlog, x): | |
|
1508 | clnode = mfs[x] | |
|
1509 | mdata = mf.readfast(x) | |
|
1510 | for f in changedfiles: | |
|
1511 | if f in mdata: | |
|
1512 | fnodes.setdefault(f, {}).setdefault(mdata[f], clnode) | |
|
1513 | count[0] += 1 | |
|
1514 | self.ui.progress(_('bundling'), count[0], | |
|
1515 | unit=_('manifests'), total=len(mfs)) | |
|
1516 | return mfs[x] | |
|
1517 | ||
|
1498 | 1518 | # Now that we have all theses utility functions to help out and |
|
1499 | 1519 | # logically divide up the task, generate the group. |
|
1500 | 1520 | def gengroup(): |
|
1501 | # The set of changed files starts empty. | |
|
1502 | ||
|
1503 | count = [0] | |
|
1504 | def clookup(revlog, x): | |
|
1505 | c = cl.read(x) | |
|
1506 | changedfiles.update(c[3]) | |
|
1507 | mfs.setdefault(c[0], x) | |
|
1508 | count[0] += 1 | |
|
1509 | self.ui.progress(_('bundling'), count[0], unit=_('changesets')) | |
|
1510 | return x | |
|
1511 | ||
|
1512 | 1521 | # Create a changenode group generator that will call our functions |
|
1513 | 1522 | # back to lookup the owning changenode and collect information. |
|
1514 | 1523 | for chunk in cl.group(csets, clookup): |
|
1515 | 1524 | yield chunk |
|
1516 | changecount = count[0] | |
|
1517 | 1525 | efiles = len(changedfiles) |
|
1518 | 1526 | self.ui.progress(_('bundling'), None) |
|
1519 | 1527 | |
|
1520 | 1528 | # Create a generator for the manifestnodes that calls our lookup |
|
1521 | 1529 | # and data collection functions back. |
|
1522 |
count = |
|
|
1523 | def mlookup(revlog, x): | |
|
1524 | clnode = mfs[x] | |
|
1525 | mdata = mf.readfast(x) | |
|
1526 | for f in changedfiles: | |
|
1527 | if f in mdata: | |
|
1528 | fnodes.setdefault(f, {}).setdefault(mdata[f], clnode) | |
|
1529 | count[0] += 1 | |
|
1530 | self.ui.progress(_('bundling'), count[0], | |
|
1531 | unit=_('manifests'), total=changecount) | |
|
1532 | return mfs[x] | |
|
1533 | ||
|
1530 | count[0] = 0 | |
|
1534 | 1531 | for chunk in mf.group(prune(mf, mfs), mlookup): |
|
1535 | 1532 | yield chunk |
|
1536 | 1533 | self.ui.progress(_('bundling'), None) |
General Comments 0
You need to be logged in to leave comments.
Login now