##// END OF EJS Templates
phases: avoid N² behavior in `advanceboundary`...
phases: avoid N² behavior in `advanceboundary` We allowed duplicated entries in the deque, which each entry could potentially insert all its ancestors. So advancing boundary for the full repository would mean each revision would walk all its ancestors, resulting in O(N²) iteration. For repository of any decent size, N² is quickly insane. We introduce a simple set to avoid this and get back to reasonable performance.

File last commit:

r49730:6000f5b2 default
r52398:c9ceb4f6 6.7 stable
Show More
mergeutil.py
18 lines | 463 B | text/x-python | PythonLexer
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494 # mergeutil.py - help for merge processing in mercurial
#
Raphaël Gomès
contributor: change mentions of mpm to olivia...
r47575 # Copyright 2005-2007 Olivia Mackall <olivia@selenic.com>
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494 #
# This software may be used and distributed according to the terms of the
# GNU General Public License version 2 or any later version.
from .i18n import _
Augie Fackler
formatting: blacken the codebase...
r43346 from . import error
Augie Fackler
checkunresolved: move to new package to help avoid import cycles...
r30494
def checkunresolved(ms):
Augie Fackler
cleanup: use mergestate.unresolvedcount() instead of bool(list(unresolved()))...
r47070 if ms.unresolvedcount():
Martin von Zweigbergk
errors: raise StateError when there are unresolves merge conflicts...
r46528 raise error.StateError(
Martin von Zweigbergk
cleanup: join string literals that are already on one line...
r43387 _(b"unresolved merge conflicts (see 'hg help resolve')")
Augie Fackler
formatting: blacken the codebase...
r43346 )