Mercurial > hg
view mercurial/obsutil.py @ 33132:c467d13334ee
configitems: add an official API for extensions to register config item
Extensions can have a 'configtable' mapping and use
'registrar.configitem(table)' to retrieve the registration function.
This behave in the same way as the other way for extensions to register new
items (commands, colors, etc).
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Sat, 17 Jun 2017 13:48:20 +0200 |
parents | 1858fc2327ef |
children | 4f49810a1011 |
line wrap: on
line source
# obsutil.py - utility functions for obsolescence # # Copyright 2017 Boris Feld <boris.feld@octobus.net> # # This software may be used and distributed according to the terms of the # GNU General Public License version 2 or any later version. from __future__ import absolute_import def closestpredecessors(repo, nodeid): """yield the list of next predecessors pointing on visible changectx nodes This function respect the repoview filtering, filtered revision will be considered missing. """ precursors = repo.obsstore.precursors stack = [nodeid] seen = set(stack) while stack: current = stack.pop() currentpreccs = precursors.get(current, ()) for prec in currentpreccs: precnodeid = prec[0] # Basic cycle protection if precnodeid in seen: continue seen.add(precnodeid) if precnodeid in repo: yield precnodeid else: stack.append(precnodeid)