# HG changeset patch # User Pierre-Yves David # Date 1513578014 -3600 # Node ID 8e9ea8307cdd04903849d085b8b9534098414cc7 # Parent df399e00c10bd9f236287de57a9a38a79b6233c9 stablerange: use the filterparents utility diff -r df399e00c10b -r 8e9ea8307cdd hgext3rd/evolve/stablerange.py --- a/hgext3rd/evolve/stablerange.py Mon Dec 18 07:10:43 2017 +0100 +++ b/hgext3rd/evolve/stablerange.py Mon Dec 18 07:20:14 2017 +0100 @@ -26,8 +26,11 @@ from . import ( stablesort, exthelper, + utility, ) +filterparents = utility.filterparents + eh = exthelper.exthelper() eh.merge(stablesort.eh) @@ -365,14 +368,14 @@ We are looking for that `min(parents(REV))`. Since the subrange are based on the sort, we can reuse its subrange as well. """ - p1, p2 = repo.changelog.parentrevs(headrev) - relevant_parent = None - if p2 == nodemod.nullrev: - relevant_parent = p1 + ps = filterparents(repo.changelog.parentrevs(headrev)) + if not ps: + return nodemod.nullrev + elif len(ps) == 1: + return ps[0] else: tiebreaker = stablesort._mergepoint_tie_breaker(repo) - relevant_parent = min(p1, p2, key=tiebreaker) - return relevant_parent + return min(ps, key=tiebreaker) def _parentrange(self, repo, rangeid): stable_parent = self._stableparent(repo, rangeid[0]) @@ -706,10 +709,12 @@ This function also have the important task to update the revscache of the parent rev s if possible and needed""" - p1, p2 = self._parents(rangeid[0], repo.changelog.parentrevs) - if p2 == nodemod.nullrev: + ps = filterparents(self._parents(rangeid[0], repo.changelog.parentrevs)) + if not ps: + return None + elif len(ps) == 1: # regular changesets, we pick the parent - reusablerev = p1 + reusablerev = ps[0] else: # merge, we try the inheritance point # if it is too low, it will be ditched by the depth check anyway @@ -729,9 +734,9 @@ return reurange def _slicesrangeat(self, repo, rangeid, globalindex): - p1, p2 = self._parents(rangeid[0], repo.changelog.parentrevs) - if p2 == nodemod.nullrev: - reuserev = p1 + ps = self._parents(rangeid[0], repo.changelog.parentrevs) + if len(ps) == 1: + reuserev = ps[0] else: index, reuserev = self._inheritancepoint(repo, rangeid[0]) if index < globalindex: