# HG changeset patch # User Anton Shestakov # Date 1588092193 -28800 # Node ID 77a77d0f5441c809bfb173d1ad8fd2becd4b8349 # Parent 6d0d9ba04a1d93cc136f8abe422d63aa2029cba8 evolve: provide cache to successorssets() in _singlesuccessor() Since we're using obsutil.successorssets() in a loop, it may help performance to have cache. diff -r 6d0d9ba04a1d -r 77a77d0f5441 hgext3rd/evolve/utility.py --- a/hgext3rd/evolve/utility.py Wed Apr 29 00:28:15 2020 +0800 +++ b/hgext3rd/evolve/utility.py Wed Apr 29 00:43:13 2020 +0800 @@ -112,14 +112,15 @@ return p.rev() obs = repo[p] ui = repo.ui - newer = obsutil.successorssets(repo, obs.node()) + cache = {} + newer = obsutil.successorssets(repo, obs.node(), cache=cache) # search of a parent which is not killed while not newer: ui.debug(b"stabilize target %s is plain dead," b" trying to stabilize on its parent\n" % obs) obs = obs.p1() - newer = obsutil.successorssets(repo, obs.node()) + newer = obsutil.successorssets(repo, obs.node(), cache=cache) if len(newer) > 1 or len(newer[0]) > 1: raise MultipleSuccessorsError(newer)