comparison mercurial/revlogutils/deltas.py @ 39504:05a165dc4f55

snapshot: extract parent chain computation The final step of this series is to include chain related to "prev" in the search. Before adding that code we do some simple code movement to clarify the next diff.
author Boris Feld <boris.feld@octobus.net>
date Fri, 07 Sep 2018 11:17:37 -0400
parents 5aef5afa8654
children c6b8eab5db19
comparison
equal deleted inserted replaced
39503:5aef5afa8654 39504:05a165dc4f55
709 # a base for a new intermediate-snapshot 709 # a base for a new intermediate-snapshot
710 # 710 #
711 # search for snapshot in parents delta chain 711 # search for snapshot in parents delta chain
712 # map: snapshot-level: snapshot-rev 712 # map: snapshot-level: snapshot-rev
713 parents_snaps = collections.defaultdict(set) 713 parents_snaps = collections.defaultdict(set)
714 for p in parents: 714 candidate_chains = [deltachain(p) for p in parents]
715 for idx, s in enumerate(deltachain(p)): 715 for chain in candidate_chains:
716 for idx, s in enumerate(chain):
716 if not revlog.issnapshot(s): 717 if not revlog.issnapshot(s):
717 break 718 break
718 parents_snaps[idx].add(s) 719 parents_snaps[idx].add(s)
719 snapfloor = min(parents_snaps[0]) + 1 720 snapfloor = min(parents_snaps[0]) + 1
720 _findsnapshots(revlog, snapshots, snapfloor) 721 _findsnapshots(revlog, snapshots, snapfloor)