# HG changeset patch # User Boris Feld <boris.f...@octobus.net> # Date 1499036035 -7200 # Mon Jul 03 00:53:55 2017 +0200 # Node ID 105c150648b0c43c240b27047d0be89359932d10 # Parent 634b259079c55e5dc3aaaad38c3c73f87611d0be # EXP-Topic obsfatetemplate obsolete: introduce a _succs class
It will be useful later when we will be adding markers to _succs in order to represent a successorset with the list of markers from the root to each successors sets. This information will be needed for the obsfate template I will introduce. Makes it a subclass of list so all callers will continue to work. diff -r 634b259079c5 -r 105c150648b0 mercurial/obsutil.py --- a/mercurial/obsutil.py Tue Jul 04 22:35:52 2017 -0700 +++ b/mercurial/obsutil.py Mon Jul 03 00:53:55 2017 +0200 @@ -311,6 +311,9 @@ obsoleted.add(rev) return obsoleted +class _succs(list): + """small class to represent a successors with some metadata about it""" + def successorssets(repo, initialnode, closest=False, cache=None): """Return set of all latest successors of initial nodes @@ -429,11 +432,11 @@ # case (2): end of walk. if current in repo: # We have a valid successors. - cache[current] = [(current,)] + cache[current] = [_succs((current,))] else: # Final obsolete version is unknown locally. # Do not count that as a valid successors - cache[current] = [] + cache[current] = _succs() else: # cases (3) and (4) # @@ -471,7 +474,7 @@ if suc not in cache: if suc in stackedset: # cycle breaking - cache[suc] = [] + cache[suc] = _succs() else: # case (3) If we have not computed successors sets # of one of those successors we add it to the @@ -505,13 +508,13 @@ succssets = [] for mark in sorted(succmarkers[current]): # successors sets contributed by this marker - markss = [[]] + markss = [_succs()] for suc in mark[1]: # cardinal product with previous successors productresult = [] for prefix in markss: for suffix in cache[suc]: - newss = list(prefix) + newss = _succs(prefix) for part in suffix: # do not duplicated entry in successors set # first entry wins. _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel