misc: Remove support for checking out as a mercurial repo.
authorGabe Black <gabeblack@google.com>
Fri, 10 Jul 2020 20:40:55 +0000 (13:40 -0700)
committerGabe Black <gabeblack@google.com>
Mon, 13 Jul 2020 22:25:41 +0000 (22:25 +0000)
This will still be technically possible with the right converters, but
this removes the tags, ignore file, and style checking hooks related to
mercurial. We no longer maintain a mercurial mirror of the main git
repository, and this support adds clutter and could diverge from the git
style hooks, etc, over time.

Change-Id: Icf4833c4f0fda51ea98989d1d741432ae3ddc6dd
Reviewed-on: https://gem5-review.googlesource.com/c/public/gem5/+/31174
Reviewed-by: Jason Lowe-Power <power.jg@gmail.com>
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Gabe Black <gabeblack@google.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
Tested-by: kokoro <noreply+kokoro@google.com>
.hgignore [deleted file]
.hgtags [deleted file]
site_scons/site_tools/default.py
site_scons/site_tools/mercurial.py [deleted file]
util/hgfilesize.py [deleted file]
util/hgstyle.py [deleted file]
util/style.py
util/style/file_types.py
util/style/repo.py
util/style/style.py

diff --git a/.hgignore b/.hgignore
deleted file mode 100644 (file)
index 03dead6..0000000
--- a/.hgignore
+++ /dev/null
@@ -1,17 +0,0 @@
-syntax: glob
-build
-parser.out
-parsetab.py
-cscope.files
-cscope.out
-*.pyc
-*~
-.*.swp
-m5out
-src/doxygen
-ext/dramsim2/DRAMSim2
-ext/mcpat/regression/*/*.out
-util/m5/*.o
-util/m5/*.a
-util/m5/m5
-system/arm/dt/*.dtb
diff --git a/.hgtags b/.hgtags
deleted file mode 100644 (file)
index 124eac9..0000000
--- a/.hgtags
+++ /dev/null
@@ -1,30 +0,0 @@
-6b99127531fd692ff0f202e327d0826ed2bfcf5f m5_1.0_beta1
-1a40e60270c11ec24f11c783e70367e2740cdc56 m5_1.0_beta1
-069849384988e553b6edae71ecaf1fb6e918d738 m5_1.0_beta2
-4cfa92eca35d532b339507f1c631e1986d87b258 m5_1.0_tutorial
-ffe1942d845c67fb3fd04692420c9433638eba13 m5_1.0_web
-af8bf5e4e85ba1a773183cc3f6c43bcdf0ce146a m5_1.1
-1c0eeb0dae9b6a2a5479faf3ab52fb1ed0ce703f m5_1.1
-c486924ed90eb6805e8cf44ddee5ad5435c79051 m5_1.1
-01e679b66ca9474f10f8f96d391693adf76fc73a m5_1.1
-2608cd7def85c9fdc84251295c8023fab990d530 m5_1.1
-cdd48642d9bf584bd445b40abec9e7f934a5900b m5_1.1
-8d690c7c2efced99f7991b7ace56d769bae7cfdd m5_2.0_beta1
-d83885ad2b41777c97b94882aa8f07e761e55ac1 m5_2.0_beta1_patch1
-1906dcace7c27b2153bfb95ca1218660e1cc1f70 m5_2.0_beta2
-b174ae14f007ba0c341f8df77d36f57f48369cc8 m5_2.0_beta2
-91a9ac67662aa3a79315ade29b17a85961fecd88 m5_2.0_beta3
-dce5a8655829b7d2e24ce40cafc9c8873a71671f m5_2.0_beta5
-1ac44b6c87ec71a8410c9a9c219269eca71f8077 m5_2.0_beta4
-60a931b03fb165807f02bcccc4f7d0fd705a67a9 copyright_update
-d8b246a665c160a31751b4091f097022cde16dd7 m5_2.0_beta6
-5de565c4b7bdf46670611858b709c1eb50ad7c5c Calvin_Submission
-549b72de8f725bd411a9c73ee0d15ccbdf47bb0f stable_2012_02_02
-f75ee4849c404a0c7d93413f443cec640b721f2f stable_2012_06_28
-07352f119e489452b3c0bbf6d4f70e21e80e17e3 stable_2013_06_16
-6a043adb1e8d67fbb03ac5cee58dd26f75663714 stable_2013_10_14
-459491344fcf7f9e29250e71f33a7c7150f54d64 stable_2014_02_15
-cb2e6950956d475da97b04c41f19769ce2e8541a stable_2014_08_26
-bdb307e8be54a5808a9af2537e9261d88de6ed1b stable_2014_12_14
-e1794974515011f81f8d0fda7543ba3360a12c9b stable_2015_04_15
-60eb3fef9c2d51cf98cdb5501ee0c4ac0efe6eae stable_2015_09_03
index 08736f01a3bdc1e22165f9efaacdd9f02cff5788..8e8e86366112e599493d74015468bd256931ab44 100644 (file)
@@ -80,7 +80,6 @@ def common_config(env):
 
 gem5_tool_list = [
     'git',
-    'mercurial',
 ]
 
 def generate(env):
diff --git a/site_scons/site_tools/mercurial.py b/site_scons/site_tools/mercurial.py
deleted file mode 100644 (file)
index 3c91b38..0000000
+++ /dev/null
@@ -1,147 +0,0 @@
-# Copyright (c) 2013, 2015-2017 ARM Limited
-# All rights reserved.
-#
-# The license below extends only to copyright in the software and shall
-# not be construed as granting a license to any other intellectual
-# property including but not limited to intellectual property relating
-# to a hardware implementation of the functionality of the software
-# licensed hereunder.  You may use the software subject to the license
-# terms below provided that you ensure that this notice is replicated
-# unmodified and in its entirety in all distributions of the software,
-# modified or unmodified, in source code or in binary form.
-#
-# Copyright (c) 2011 Advanced Micro Devices, Inc.
-# Copyright (c) 2009 The Hewlett-Packard Development Company
-# Copyright (c) 2004-2005 The Regents of The University of Michigan
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-from __future__ import print_function
-import re
-import sys
-
-import gem5_scons.util
-
-mercurial_style_message = """
-You're missing the gem5 style hook, which automatically checks your code
-against the gem5 style rules on hg commit and qrefresh commands.
-This script will now install the hook in your .hg/hgrc file.
-Press enter to continue, or ctrl-c to abort: """
-
-mercurial_style_upgrade_message = """
-Your Mercurial style hooks are not up-to-date. This script will now
-try to automatically update them. A backup of your hgrc will be saved
-in .hg/hgrc.old.
-Press enter to continue, or ctrl-c to abort: """
-
-mercurial_style_hook_template = """
-# The following lines were automatically added by gem5/SConstruct
-# to provide the gem5 style-checking hooks
-[extensions]
-hgstyle = %s/util/hgstyle.py
-
-[hooks]
-pretxncommit.style = python:hgstyle.check_style
-pre-qrefresh.style = python:hgstyle.check_style
-# End of SConstruct additions
-
-"""
-
-mercurial_lib_not_found = """
-Mercurial libraries cannot be found, ignoring style hook.  If
-you are a gem5 developer, please fix this and run the style
-hook. It is important.
-"""
-
-def install_style_hooks(env):
-    hgdir = env.Dir('#.hg')
-
-    style_hook = True
-    style_hooks = tuple()
-    hgrc = hgdir.File('hgrc')
-    hgrc_old = hgdir.File('hgrc.old')
-    try:
-        from mercurial import ui
-        ui = ui.ui()
-        ui.readconfig(hgrc.abspath)
-        style_hooks = (ui.config('hooks', 'pretxncommit.style', None),
-                       ui.config('hooks', 'pre-qrefresh.style', None))
-        style_hook = all(style_hooks)
-        style_extension = ui.config('extensions', 'style', None)
-    except ImportError:
-        print(mercurial_lib_not_found)
-
-    if "python:style.check_style" in style_hooks:
-        # Try to upgrade the style hooks
-        print(mercurial_style_upgrade_message)
-        # continue unless user does ctrl-c/ctrl-d etc.
-        try:
-            raw_input()
-        except:
-            print("Input exception, exiting scons.\n")
-            sys.exit(1)
-        shutil.copyfile(hgrc.abspath, hgrc_old.abspath)
-        re_style_hook = re.compile(r"^([^=#]+)\.style\s*=\s*([^#\s]+).*")
-        re_style_extension = re.compile("style\s*=\s*([^#\s]+).*")
-        old, new = open(hgrc_old.abspath, 'r'), open(hgrc.abspath, 'w')
-        for l in old:
-            m_hook = re_style_hook.match(l)
-            m_ext = re_style_extension.match(l)
-            if m_hook:
-                hook, check = m_hook.groups()
-                if check != "python:style.check_style":
-                    print("Warning: %s.style is using a non-default " \
-                        "checker: %s" % (hook, check))
-                if hook not in ("pretxncommit", "pre-qrefresh"):
-                    print("Warning: Updating unknown style hook: %s" % hook)
-
-                l = "%s.style = python:hgstyle.check_style\n" % hook
-            elif m_ext and m_ext.group(1) == style_extension:
-                l = "hgstyle = %s/util/hgstyle.py\n" % env.root.abspath
-
-            new.write(l)
-    elif not style_hook:
-        print(mercurial_style_message, end=' ')
-        # continue unless user does ctrl-c/ctrl-d etc.
-        try:
-            raw_input()
-        except:
-            print("Input exception, exiting scons.\n")
-            sys.exit(1)
-        hgrc_path = '%s/.hg/hgrc' % env.root.abspath
-        print("Adding style hook to", hgrc_path, "\n")
-        try:
-            with open(hgrc_path, 'a') as f:
-                f.write(mercurial_style_hook_template % env.root.abspath)
-        except:
-            print("Error updating", hgrc_path)
-            sys.exit(1)
-
-def generate(env):
-    if exists(env) and not gem5_scons.util.ignore_style():
-        install_style_hooks(env)
-
-def exists(env):
-    return env.Dir('#.hg').exists()
diff --git a/util/hgfilesize.py b/util/hgfilesize.py
deleted file mode 100644 (file)
index 8016582..0000000
+++ /dev/null
@@ -1,34 +0,0 @@
-from mercurial import context
-from mercurial.i18n import _
-
-'''
-[extensions]
-hgfilesize=~/m5/incoming/util/hgfilesize.py
-
-[hooks]
-pretxncommit = python:hgfilesize.limit_file_size
-pretxnchangegroup = python:hgfilesize.limit_file_size
-
-[limit_file_size]
-maximum_file_size = 200000
-'''
-
-def limit_file_size(ui, repo, node=None, **kwargs):
-    '''forbid files over a given size'''
-
-    # default limit is 1 MB
-    limit = int(ui.config('limit_file_size', 'maximum_file_size', 1024*1024))
-    existing_tip = context.changectx(repo, node).rev()
-    new_tip = context.changectx(repo, 'tip').rev()
-    for rev in xrange(existing_tip, new_tip + 1):
-        ctx = context.changectx(repo, rev)
-        for f in ctx.files():
-            if f not in ctx:
-                continue
-            fctx = ctx.filectx(f)
-            if fctx.size() > limit:
-                ui.write(_('file %s of %s is too large: %d > %d\n') % \
-                             (f, ctx, fctx.size(), limit))
-                return True # This is invalid
-
-    return False # Things are OK.
diff --git a/util/hgstyle.py b/util/hgstyle.py
deleted file mode 100755 (executable)
index 3b7168f..0000000
+++ /dev/null
@@ -1,219 +0,0 @@
-#! /usr/bin/env python2.7
-# Copyright (c) 2014 ARM Limited
-# All rights reserved
-#
-# The license below extends only to copyright in the software and shall
-# not be construed as granting a license to any other intellectual
-# property including but not limited to intellectual property relating
-# to a hardware implementation of the functionality of the software
-# licensed hereunder.  You may use the software subject to the license
-# terms below provided that you ensure that this notice is replicated
-# unmodified and in its entirety in all distributions of the software,
-# modified or unmodified, in source code or in binary form.
-#
-# Copyright (c) 2006 The Regents of The University of Michigan
-# Copyright (c) 2007,2011 The Hewlett-Packard Development Company
-# Copyright (c) 2016 Advanced Micro Devices, Inc.
-# All rights reserved.
-#
-# Redistribution and use in source and binary forms, with or without
-# modification, are permitted provided that the following conditions are
-# met: redistributions of source code must retain the above copyright
-# notice, this list of conditions and the following disclaimer;
-# redistributions in binary form must reproduce the above copyright
-# notice, this list of conditions and the following disclaimer in the
-# documentation and/or other materials provided with the distribution;
-# neither the name of the copyright holders nor the names of its
-# contributors may be used to endorse or promote products derived from
-# this software without specific prior written permission.
-#
-# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
-# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
-# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
-# A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
-# OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
-# SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
-# LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
-# DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
-# THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
-# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
-# OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
-
-import sys
-import os
-from os.path import join as joinpath
-
-current_dir = os.path.dirname(__file__)
-sys.path.insert(0, current_dir)
-
-from style.verifiers import all_verifiers
-from style.style import MercurialUI, check_ignores
-from style.region import *
-
-from mercurial import bdiff, mdiff, commands
-
-def modified_regions(old_data, new_data):
-    regions = Regions()
-    beg = None
-    for pbeg, pend, fbeg, fend in bdiff.blocks(old_data, new_data):
-        if beg is not None and beg != fbeg:
-            regions.append(beg, fbeg)
-        beg = fend
-    return regions
-
-def modregions(wctx, fname):
-    fctx = wctx.filectx(fname)
-    pctx = fctx.parents()
-
-    file_data = fctx.data()
-    lines = mdiff.splitnewlines(file_data)
-    if len(pctx) in (1, 2):
-        mod_regions = modified_regions(pctx[0].data(), file_data)
-        if len(pctx) == 2:
-            m2 = modified_regions(pctx[1].data(), file_data)
-            # only the lines that are new in both
-            mod_regions &= m2
-    else:
-        mod_regions = Regions()
-        mod_regions.append(0, len(lines))
-
-    return mod_regions
-
-
-def _modified_regions(repo, patterns, **kwargs):
-    opt_all = kwargs.get('all', False)
-    opt_no_ignore = kwargs.get('no_ignore', False)
-
-    # Import the match (repository file name matching helper)
-    # function. Different versions of Mercurial keep it in different
-    # modules and implement them differently.
-    try:
-        from mercurial import scmutil
-        m = scmutil.match(repo[None], patterns, kwargs)
-    except ImportError:
-        from mercurial import cmdutil
-        m = cmdutil.match(repo, patterns, kwargs)
-
-    modified, added, removed, deleted, unknown, ignore, clean = \
-        repo.status(match=m, clean=opt_all)
-
-    if not opt_all:
-        try:
-            wctx = repo.workingctx()
-        except:
-            from mercurial import context
-            wctx = context.workingctx(repo)
-
-        files = [ (fn, all_regions) for fn in added ] + \
-            [ (fn,  modregions(wctx, fn)) for fn in modified ]
-    else:
-        files = [ (fn, all_regions) for fn in added + modified + clean ]
-
-    for fname, mod_regions in files:
-        if opt_no_ignore or not check_ignores(fname):
-            yield fname, mod_regions
-
-
-def do_check_style(hgui, repo, *pats, **opts):
-    """check files for proper m5 style guidelines
-
-    Without an argument, checks all modified and added files for gem5
-    coding style violations. A list of files can be specified to limit
-    the checker to a subset of the repository. The style rules are
-    normally applied on a diff of the repository state (i.e., added
-    files are checked in their entirety while only modifications of
-    modified files are checked).
-
-    The --all option can be specified to include clean files and check
-    modified files in their entirety.
-
-    The --fix-<check>, --ignore-<check>, and --skip-<check> options
-    can be used to control individual style checks:
-
-    --fix-<check> will perform the check and automatically attempt to
-      fix sny style error (printing a warning if unsuccessful)
-
-    --ignore-<check> will perform the check but ignore any errors
-      found (other than printing a message for each)
-
-    --skip-<check> will skip performing the check entirely
-
-    If none of these options are given, all checks will be performed
-    and the user will be prompted on how to handle each error.
-
-    --fix-all, --ignore-all, and --skip-all are equivalent to specifying
-    --fix-<check>, --ignore-<check>, or --skip-<check> for all checks,
-    respectively.  However, option settings for specific checks take
-    precedence.  Thus --skip-all --fix-white can be used to skip every
-    check other than whitespace errors, which will be checked and
-    automatically fixed.
-
-    The -v/--verbose flag will display the offending line(s) as well
-    as their location.
-    """
-
-    ui = MercurialUI(hgui, verbose=hgui.verbose)
-
-    # instantiate varifier objects
-    verifiers = [v(ui, opts, base=repo.root) for v in all_verifiers]
-
-    for fname, mod_regions in _modified_regions(repo, pats, **opts):
-        for verifier in verifiers:
-            if verifier.apply(joinpath(repo.root, fname), mod_regions):
-                return True
-
-    return False
-
-def check_hook(hooktype):
-    if hooktype not in ('pretxncommit', 'pre-qrefresh'):
-        raise AttributeError, \
-              "This hook is not meant for %s" % hooktype
-
-# This function provides a hook that is called before transaction
-# commit and on qrefresh
-def check_style(ui, repo, hooktype, **kwargs):
-    check_hook(hooktype)
-    args = {}
-
-    try:
-        return do_check_style(ui, repo, **args)
-    except Exception, e:
-        import traceback
-        traceback.print_exc()
-        return True
-
-try:
-    from mercurial.i18n import _
-except ImportError:
-    def _(arg):
-        return arg
-
-_common_region_options = [
-    ('a', 'all', False,
-     _("include clean files and unmodified parts of modified files")),
-    ('', 'no-ignore', False, _("ignore the style ignore list")),
-    ]
-
-
-fix_opts = [('f', 'fix-all', False, _("fix all style errors"))] + \
-           [('', 'fix-' + v.opt_name, False,
-             _('fix errors in ' + v.test_name)) for v in all_verifiers]
-ignore_opts = [('', 'ignore-all', False, _("ignore all style errors"))] + \
-              [('', 'ignore-' + v.opt_name, False,
-                _('ignore errors in ' + v.test_name)) for v in all_verifiers]
-skip_opts = [('', 'skip-all', False, _("skip all style error checks"))] + \
-            [('', 'skip-' + v.opt_name, False,
-              _('skip checking for ' + v.test_name)) for v in all_verifiers]
-all_opts = fix_opts + ignore_opts + skip_opts
-
-
-cmdtable = {
-    '^m5style' : (
-        do_check_style, all_opts + _common_region_options + commands.walkopts,
-        _('hg m5style [-a] [FILE]...')),
-}
-
-if __name__ == '__main__':
-    print >> sys.stderr, "This file cannot be used from the command line. Use"
-    print >> sys.stderr, "style.py instead."
-    sys.exit(1)
index 476219a491a5c839e0d47c75e94a370731f2f651..8af8c2b0635e5fe6b7f2e33c315c0856b8cd039e 100755 (executable)
@@ -84,7 +84,6 @@ repo_types = {
     "auto" : detect_repo,
     "none" : lambda : None,
     "git" : repo.GitRepo,
-    "hg" : repo.MercurialRepo,
 }
 
 if __name__ == '__main__':
index 40d0c6f28db23373a2045392502aa31150aec99d..38de6f0bc65129c7b1edbdb44fdc84a8ec07cfc2 100644 (file)
@@ -118,7 +118,7 @@ def lang_type(filename, firstline=None, openok=True):
     return None
 
 # directories and files to ignore by default
-default_dir_ignore = frozenset(('.hg', '.svn', 'build', 'ext'))
+default_dir_ignore = frozenset(('build', 'ext'))
 default_file_ignore = frozenset(('parsetab.py', ))
 
 def find_files(base, languages=all_languages,
index a0eee98fac7a3c56205bd89fd5e6f2c7cb7e3706..f66c16b68225064e44cc587cd0de3d455635def9 100644 (file)
@@ -202,50 +202,6 @@ class GitRepo(AbstractRepo):
             [ self.git, "show", "%s:%s" % (self.head_revision(), name) ]) \
             .decode()
 
-class MercurialRepo(AbstractRepo):
-    def __init__(self):
-        self.hg = "hg"
-        self._repo_base = None
-
-    def repo_base(self):
-        if self._repo_base is None:
-            self._repo_base = subprocess.check_output(
-                [ self.hg, "root" ]).decode().rstrip("\n")
-
-        return self._repo_base
-
-    def staged_files(self):
-        added = []
-        modified = []
-        for action, fname in self.status():
-            if action == "M":
-                modified.append(fname)
-            elif action == "A":
-                added.append(fname)
-
-        return added, modified
-
-    def staged_regions(self, fname, context=0):
-        return self.modified_regions(fname, context=context)
-
-    def modified_regions(self, fname, context=0):
-        old = self.file_from_tip(fname).split("\n")
-        new = self.get_file(fname).split("\n")
-
-        return modified_regions(old, new, context=context)
-
-    def status(self, filter=None):
-        files = subprocess.check_output([ self.hg, "status" ]) \
-            .decode().rstrip("\n")
-        if files:
-            return [ f.split(" ") for f in files.split("\n") ]
-        else:
-            return []
-
-    def file_from_tip(self, name):
-        return subprocess.check_output([ self.hg, "cat", name ]) \
-            .decode()
-
 def detect_repo(path="."):
     """Auto-detect the revision control system used for a source code
     directory. The code starts searching for repository meta data
@@ -259,7 +215,6 @@ def detect_repo(path="."):
 
     _repo_types = (
         (".git", GitRepo),
-        (".hg", MercurialRepo),
     )
 
     repo_types = []
index c505dafeafd87600033392ceff4ed1bf9cea8e0b..a8a86f7864010db2dca0911a243f0ea462aabf71 100644 (file)
@@ -79,18 +79,6 @@ class StdioUI(UserInterface):
     def write(self, string):
         sys.stdout.write(string)
 
-class MercurialUI(UserInterface):
-    def __init__(self, ui, *args, **kwargs):
-        super(MercurialUI, self).__init__(*args, **kwargs)
-        self.hg_ui = ui
-
-    def _prompt(self, prompt, results, default):
-        return self.hg_ui.prompt(prompt, default=default)
-
-    def write(self, string):
-        self.hg_ui.write(string)
-
-
 def _re_ignore(expr):
     """Helper function to create regular expression ignore file
     matcher functions"""