view hg @ 46430:0c95b59a89f1

resolve: also detect new :mergediff conflict markers The conflict markers created by `:mergediff` were not detected as conflicts, which affects both `commands.resolve.mark-check` and `mergetools.<tool>.check`. This patch fixes that. The new regex it uses for finding conflict markers is less restrictive because it `:mergediff` doesn't follow the `<<<<<<<` and `>>>>>>>` lines by a space (and a description). Hopefully lines like that don't give too many false positives. We can add back the space and make `:mergediff` add trailing spaces if it turns out to be a problem. OTOH, there will always be some false positives and we have ways of overriding the checks already. This patch can go onto the default or stable branch, depending on how much we care about an experimental feature. Differential Revision: https://phab.mercurial-scm.org/D9835
author Martin von Zweigbergk <martinvonz@google.com>
date Tue, 19 Jan 2021 14:00:42 -0800
parents 7740d5102760
children d4ba4d51f85f
line wrap: on
line source

#!/usr/bin/env python3
#
# mercurial - scalable distributed SCM
#
# Copyright 2005-2007 Matt Mackall <mpm@selenic.com>
#
# 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

import os
import sys

libdir = '@LIBDIR@'

if libdir != '@' 'LIBDIR' '@':
    if not os.path.isabs(libdir):
        libdir = os.path.join(
            os.path.dirname(os.path.realpath(__file__)), libdir
        )
        libdir = os.path.abspath(libdir)
    sys.path.insert(0, libdir)

# Make `pip install --user ...` packages available to the official Windows
# build.  Most py2 packaging installs directly into the system python
# environment, so no changes are necessary for other platforms.  The Windows
# py2 package uses py2exe, which lacks a `site` module.  Hardcode it according
# to the documentation.
if getattr(sys, 'frozen', None) == 'console_exe':
    vi = sys.version_info
    sys.path.append(
        os.path.join(
            os.environ['APPDATA'],
            'Python',
            'Python%d%d' % (vi[0], vi[1]),
            'site-packages',
        )
    )

from hgdemandimport import tracing

with tracing.log('hg script'):
    # enable importing on demand to reduce startup time
    try:
        if sys.version_info[0] < 3 or sys.version_info >= (3, 6):
            import hgdemandimport

            hgdemandimport.enable()
    except ImportError:
        sys.stderr.write(
            "abort: couldn't find mercurial libraries in [%s]\n"
            % ' '.join(sys.path)
        )
        sys.stderr.write("(check your install and PYTHONPATH)\n")
        sys.exit(-1)

    from mercurial import dispatch

    dispatch.run()