The march continues.
Details
Details
- Reviewers
durin42 - Group Reviewers
hg-reviewers - Commits
- rHGc59eb1560c44: py3: manually import getattr where it is needed
Diff Detail
Diff Detail
- Repository
- rHG Mercurial
- Lint
Lint Skipped - Unit
Unit Tests Skipped
| durin42 |
| hg-reviewers |
The march continues.
| Lint Skipped |
| Unit Tests Skipped |
| Commit | Parents | Author | Summary | Date |
|---|---|---|---|---|
| Gregory Szorc | Oct 6 2019, 4:55 PM |
| # cvs.py: CVS conversion code inspired by hg-cvs-import and git-cvsimport | # cvs.py: CVS conversion code inspired by hg-cvs-import and git-cvsimport | ||||
| # | # | ||||
| # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import os | import os | ||||
| import re | import re | ||||
| import socket | import socket | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import open | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from mercurial import ( | from mercurial import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from mercurial.utils import ( | from mercurial.utils import ( | ||||
| dateutil, | dateutil, | ||||
| procutil, | procutil, | ||||
| import svn.client | import svn.client | ||||
| import svn.core | import svn.core | ||||
| import svn.ra | import svn.ra | ||||
| Pool = svn.core.Pool | Pool = svn.core.Pool | ||||
| SubversionException = svn.core.SubversionException | SubversionException = svn.core.SubversionException | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import util | from mercurial import util | ||||
| # Some older versions of the Python bindings need to be | # Some older versions of the Python bindings need to be | ||||
| # explicitly initialized. But what we want to do probably | # explicitly initialized. But what we want to do probably | ||||
| # won't work worth a darn against those libraries anyway! | # won't work worth a darn against those libraries anyway! | ||||
| svn.ra.initialize() | svn.ra.initialize() | ||||
| svn_config = None | svn_config = None | ||||
| # Copyright 2016-present Facebook. All Rights Reserved. | # Copyright 2016-present Facebook. All Rights Reserved. | ||||
| # | # | ||||
| # context: context needed to annotate a file | # context: context needed to annotate a file | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import collections | import collections | ||||
| import contextlib | import contextlib | ||||
| import hashlib | import hashlib | ||||
| import os | import os | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import ( | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | open, | ||||
| setattr, | setattr, | ||||
| ) | ) | ||||
| from mercurial import ( | from mercurial import ( | ||||
| error, | error, | ||||
| linelog as linelogmod, | linelog as linelogmod, | ||||
| lock as lockmod, | lock as lockmod, | ||||
| mdiff, | mdiff, | ||||
| # Copyright 2016-present Facebook. All Rights Reserved. | # Copyright 2016-present Facebook. All Rights Reserved. | ||||
| # | # | ||||
| # support: fastannotate support for hgweb, and filectx | # support: fastannotate support for hgweb, and filectx | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| context as hgcontext, | context as hgcontext, | ||||
| dagop, | dagop, | ||||
| extensions, | extensions, | ||||
| hgweb, | hgweb, | ||||
| patch, | patch, | ||||
| util, | util, | ||||
| ) | ) | ||||
| termios = None | termios = None | ||||
| import functools | import functools | ||||
| import locale | import locale | ||||
| import os | import os | ||||
| import struct | import struct | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import open | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from mercurial import ( | from mercurial import ( | ||||
| bundle2, | bundle2, | ||||
| cmdutil, | cmdutil, | ||||
| context, | context, | ||||
| copies, | copies, | ||||
| destutil, | destutil, | ||||
| discovery, | discovery, | ||||
| error, | error, | ||||
| from mercurial.node import ( | from mercurial.node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| ) | ) | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import open | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from mercurial.utils import ( | from mercurial.utils import ( | ||||
| procutil, | procutil, | ||||
| stringutil, | stringutil, | ||||
| ) | ) | ||||
| from mercurial import ( | from mercurial import ( | ||||
| bundle2, | bundle2, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import os | import os | ||||
| import re | import re | ||||
| import weakref | import weakref | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial.hgweb import webcommands | from mercurial.hgweb import webcommands | ||||
| from mercurial import ( | from mercurial import ( | ||||
| cmdutil, | cmdutil, | ||||
| context, | context, | ||||
| dispatch, | dispatch, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import re | import re | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| error, | error, | ||||
| hg, | hg, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from . import ( | from . import ( | ||||
| lfutil, | lfutil, | ||||
| import errno | import errno | ||||
| import hashlib | import hashlib | ||||
| import json | import json | ||||
| import os | import os | ||||
| import re | import re | ||||
| import socket | import socket | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| node, | node, | ||||
| pathutil, | pathutil, | ||||
| pycompat, | pycompat, | ||||
| url as urlmod, | url as urlmod, | ||||
| # wrapper.py - methods wrapping core mercurial logic | # wrapper.py - methods wrapping core mercurial logic | ||||
| # | # | ||||
| # Copyright 2017 Facebook, Inc. | # Copyright 2017 Facebook, Inc. | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import hashlib | import hashlib | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.node import bin, hex, nullid, short | from mercurial.node import bin, hex, nullid, short | ||||
| from mercurial.pycompat import setattr | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from mercurial import ( | from mercurial import ( | ||||
| bundle2, | bundle2, | ||||
| changegroup, | changegroup, | ||||
| cmdutil, | cmdutil, | ||||
| context, | context, | ||||
| error, | error, | ||||
| exchange, | exchange, | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.node import ( | from mercurial.node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from mercurial.pycompat import open | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from mercurial import ( | from mercurial import ( | ||||
| cmdutil, | cmdutil, | ||||
| commands, | commands, | ||||
| dirstateguard, | dirstateguard, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| hg, | hg, | ||||
| import contextlib | import contextlib | ||||
| import itertools | import itertools | ||||
| import json | import json | ||||
| import operator | import operator | ||||
| import re | import re | ||||
| from mercurial.node import bin, nullid | from mercurial.node import bin, nullid | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| cmdutil, | cmdutil, | ||||
| context, | context, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| exthelper, | exthelper, | ||||
| httpconnection as httpconnectionmod, | httpconnection as httpconnectionmod, | ||||
| mdiff, | mdiff, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import collections | import collections | ||||
| import errno | import errno | ||||
| import hashlib | import hashlib | ||||
| import mmap | import mmap | ||||
| import os | import os | ||||
| import struct | import struct | ||||
| import time | import time | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import open | from mercurial.pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from mercurial import ( | from mercurial import ( | ||||
| node as nodemod, | node as nodemod, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| vfs as vfsmod, | vfs as vfsmod, | ||||
| ) | ) | ||||
| from . import shallowutil | from . import shallowutil | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import threading | import threading | ||||
| from mercurial.node import hex, nullid | from mercurial.node import hex, nullid | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| mdiff, | mdiff, | ||||
| pycompat, | pycompat, | ||||
| revlog, | revlog, | ||||
| ) | ) | ||||
| from . import ( | from . import ( | ||||
| basestore, | basestore, | ||||
| constants, | constants, | ||||
| """strip changesets and their descendants from history | """strip changesets and their descendants from history | ||||
| This extension allows you to strip changesets and all their descendants from the | This extension allows you to strip changesets and all their descendants from the | ||||
| repository. See the command help for details. | repository. See the command help for details. | ||||
| """ | """ | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import getattr | |||||
| from mercurial import ( | from mercurial import ( | ||||
| bookmarks as bookmarksmod, | bookmarks as bookmarksmod, | ||||
| cmdutil, | cmdutil, | ||||
| error, | error, | ||||
| hg, | hg, | ||||
| lock as lockmod, | lock as lockmod, | ||||
| merge, | merge, | ||||
| node as nodemod, | node as nodemod, | ||||
| It is useful for the users who want to commit with UTF-8 log message. | It is useful for the users who want to commit with UTF-8 log message. | ||||
| ''' | ''' | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import os | import os | ||||
| import sys | import sys | ||||
| from mercurial.i18n import _ | from mercurial.i18n import _ | ||||
| from mercurial.pycompat import setattr | from mercurial.pycompat import getattr, setattr | ||||
| from mercurial import ( | from mercurial import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| registrar, | registrar, | ||||
| ) | ) | ||||
| # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for | # Note for extension authors: ONLY specify testedwith = 'ships-with-hg-core' for | ||||
| if t.type == token.NEWLINE and futureimpline: | if t.type == token.NEWLINE and futureimpline: | ||||
| futureimpline = False | futureimpline = False | ||||
| if fullname == 'mercurial.pycompat': | if fullname == 'mercurial.pycompat': | ||||
| yield t | yield t | ||||
| continue | continue | ||||
| r, c = t.start | r, c = t.start | ||||
| l = ( | l = ( | ||||
| b'; from mercurial.pycompat import ' | b'; from mercurial.pycompat import ' | ||||
| b'delattr, getattr\n' | b'delattr\n' | ||||
| ) | ) | ||||
| for u in tokenize.tokenize(io.BytesIO(l).readline): | for u in tokenize.tokenize(io.BytesIO(l).readline): | ||||
| if u.type in (tokenize.ENCODING, token.ENDMARKER): | if u.type in (tokenize.ENCODING, token.ENDMARKER): | ||||
| continue | continue | ||||
| yield u._replace( | yield u._replace( | ||||
| start=(r, c + u.start[1]), end=(r, c + u.end[1]) | start=(r, c + u.start[1]), end=(r, c + u.end[1]) | ||||
| ) | ) | ||||
| continue | continue | ||||
| # Emit unmodified token. | # Emit unmodified token. | ||||
| yield t | yield t | ||||
| # Header to add to bytecode files. This MUST be changed when | # Header to add to bytecode files. This MUST be changed when | ||||
| # ``replacetoken`` or any mechanism that changes semantics of module | # ``replacetoken`` or any mechanism that changes semantics of module | ||||
| # loading is changed. Otherwise cached bytecode may get loaded without | # loading is changed. Otherwise cached bytecode may get loaded without | ||||
| # the new transformation mechanisms applied. | # the new transformation mechanisms applied. | ||||
| BYTECODEHEADER = b'HG\x00\x10' | BYTECODEHEADER = b'HG\x00\x11' | ||||
| class hgloader(importlib.machinery.SourceFileLoader): | class hgloader(importlib.machinery.SourceFileLoader): | ||||
| """Custom module loader that transforms source code. | """Custom module loader that transforms source code. | ||||
| When the source code is converted to a code object, we transform | When the source code is converted to a code object, we transform | ||||
| certain patterns to be Python 3 compatible. This allows us to write code | certain patterns to be Python 3 compatible. This allows us to write code | ||||
| that is natively Python 2 and compatible with Python 3 without | that is natively Python 2 and compatible with Python 3 without | ||||
| making the code excessively ugly. | making the code excessively ugly. | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| short, | short, | ||||
| wdirid, | wdirid, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| obsutil, | obsutil, | ||||
| pycompat, | pycompat, | ||||
| scmutil, | scmutil, | ||||
| txnutil, | txnutil, | ||||
| util, | util, | ||||
| import os | import os | ||||
| import re | import re | ||||
| import socket | import socket | ||||
| import stat | import stat | ||||
| import struct | import struct | ||||
| import time | import time | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| commandserver, | commandserver, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| node, | node, | ||||
| pycompat, | pycompat, | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from .pycompat import ( | from .pycompat import ( | ||||
| getattr, | |||||
| open, | open, | ||||
| setattr, | setattr, | ||||
| ) | ) | ||||
| from . import ( | from . import ( | ||||
| bookmarks, | bookmarks, | ||||
| changelog, | changelog, | ||||
| copies, | copies, | ||||
| # utility for color output for Mercurial commands | # utility for color output for Mercurial commands | ||||
| # | # | ||||
| # Copyright (C) 2007 Kevin Christen <kevin.christen@gmail.com> and other | # Copyright (C) 2007 Kevin Christen <kevin.christen@gmail.com> and other | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import re | import re | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| from .utils import stringutil | from .utils import stringutil | ||||
| try: | try: | ||||
| import selectors | import selectors | ||||
| selectors.BaseSelector | selectors.BaseSelector | ||||
| except ImportError: | except ImportError: | ||||
| from .thirdparty import selectors2 as selectors | from .thirdparty import selectors2 as selectors | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| loggingutil, | loggingutil, | ||||
| pycompat, | pycompat, | ||||
| repocache, | repocache, | ||||
| util, | util, | ||||
| vfs as vfsmod, | vfs as vfsmod, | ||||
| # config.py - configuration parsing for Mercurial | # config.py - configuration parsing for Mercurial | ||||
| # | # | ||||
| # Copyright 2009 Matt Mackall <mpm@selenic.com> and others | # Copyright 2009 Matt Mackall <mpm@selenic.com> and others | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import os | import os | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| class config(object): | class config(object): | ||||
| hex, | hex, | ||||
| modifiednodeid, | modifiednodeid, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| wdirfilenodeids, | wdirfilenodeids, | ||||
| wdirhex, | wdirhex, | ||||
| ) | ) | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| copies, | copies, | ||||
| dagop, | dagop, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| fileset, | fileset, | ||||
| match as matchmod, | match as matchmod, | ||||
| obsolete as obsmod, | obsolete as obsmod, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import locale | import locale | ||||
| import os | import os | ||||
| import re | import re | ||||
| import signal | import signal | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| patch as patchmod, | patch as patchmod, | ||||
| pycompat, | pycompat, | ||||
| scmutil, | scmutil, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullhex, | nullhex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| bundle2, | bundle2, | ||||
| changegroup, | changegroup, | ||||
| cmdutil, | cmdutil, | ||||
| color, | color, | ||||
| context, | context, | ||||
| copies, | copies, | ||||
| dagparser, | dagparser, | ||||
| import re | import re | ||||
| import signal | import signal | ||||
| import sys | import sys | ||||
| import time | import time | ||||
| import traceback | import traceback | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from hgdemandimport import tracing | from hgdemandimport import tracing | ||||
| from . import ( | from . import ( | ||||
| cmdutil, | cmdutil, | ||||
| color, | color, | ||||
| commands, | commands, | ||||
| demandimport, | demandimport, | ||||
| # encoding.py - character transcoding support for Mercurial | # encoding.py - character transcoding support for Mercurial | ||||
| # | # | ||||
| # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | # Copyright 2005-2009 Matt Mackall <mpm@selenic.com> and others | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import, print_function | from __future__ import absolute_import, print_function | ||||
| import locale | import locale | ||||
| import os | import os | ||||
| import unicodedata | import unicodedata | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| from .pure import charencode as charencodepure | from .pure import charencode as charencodepure | ||||
| import inspect | import inspect | ||||
| import os | import os | ||||
| from .i18n import ( | from .i18n import ( | ||||
| _, | _, | ||||
| gettext, | gettext, | ||||
| ) | ) | ||||
| from .pycompat import ( | from .pycompat import ( | ||||
| getattr, | |||||
| open, | open, | ||||
| setattr, | setattr, | ||||
| ) | ) | ||||
| from . import ( | from . import ( | ||||
| cmdutil, | cmdutil, | ||||
| configitems, | configitems, | ||||
| error, | error, | ||||
| import shutil | import shutil | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| formatter, | formatter, | ||||
| match, | match, | ||||
| pycompat, | pycompat, | ||||
| registrar, | registrar, | ||||
| # fileset.py - file set queries for mercurial | # fileset.py - file set queries for mercurial | ||||
| # | # | ||||
| # Copyright 2010 Matt Mackall <mpm@selenic.com> | # Copyright 2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import re | import re | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| filesetlang, | filesetlang, | ||||
| match as matchmod, | match as matchmod, | ||||
| merge, | merge, | ||||
| pycompat, | pycompat, | ||||
| registrar, | registrar, | ||||
| scmutil, | scmutil, | ||||
| # filesetlang.py - parser, tokenizer and utility for file set language | # filesetlang.py - parser, tokenizer and utility for file set language | ||||
| # | # | ||||
| # Copyright 2010 Matt Mackall <mpm@selenic.com> | # Copyright 2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| parser, | parser, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| # common weight constants for static optimization | # common weight constants for static optimization | ||||
| # (see registrar.filesetpredicate for details) | # (see registrar.filesetpredicate for details) | ||||
| import os | import os | ||||
| import re | import re | ||||
| import textwrap | import textwrap | ||||
| from .i18n import ( | from .i18n import ( | ||||
| _, | _, | ||||
| gettext, | gettext, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| cmdutil, | cmdutil, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| fancyopts, | fancyopts, | ||||
| filemerge, | filemerge, | ||||
| fileset, | fileset, | ||||
| import errno | import errno | ||||
| import hashlib | import hashlib | ||||
| import os | import os | ||||
| import shutil | import shutil | ||||
| import stat | import stat | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import nullid | from .node import nullid | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| bookmarks, | bookmarks, | ||||
| bundlerepo, | bundlerepo, | ||||
| cacheutil, | cacheutil, | ||||
| cmdutil, | cmdutil, | ||||
| destutil, | destutil, | ||||
| discovery, | discovery, | ||||
| # hgweb/common.py - Utility functions needed by hgweb_mod and hgwebdir_mod | # hgweb/common.py - Utility functions needed by hgweb_mod and hgwebdir_mod | ||||
| # | # | ||||
| # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net> | # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net> | ||||
| # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import base64 | import base64 | ||||
| import errno | import errno | ||||
| import mimetypes | import mimetypes | ||||
| import os | import os | ||||
| import stat | import stat | ||||
| from ..pycompat import open | from ..pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from .. import ( | from .. import ( | ||||
| encoding, | encoding, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| httpserver = util.httpserver | httpserver = util.httpserver | ||||
| from .common import ( | from .common import ( | ||||
| ErrorResponse, | ErrorResponse, | ||||
| HTTP_BAD_REQUEST, | HTTP_BAD_REQUEST, | ||||
| cspvalues, | cspvalues, | ||||
| permhooks, | permhooks, | ||||
| statusmessage, | statusmessage, | ||||
| ) | ) | ||||
| from ..pycompat import getattr | |||||
| from .. import ( | from .. import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| formatter, | formatter, | ||||
| hg, | hg, | ||||
| hook, | hook, | ||||
| import importlib | import importlib | ||||
| import os | import os | ||||
| import socket | import socket | ||||
| import sys | import sys | ||||
| import traceback | import traceback | ||||
| import wsgiref.validate | import wsgiref.validate | ||||
| from ..i18n import _ | from ..i18n import _ | ||||
| from ..pycompat import open | from ..pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from .. import ( | from .. import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| # | # | ||||
| # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net> | # Copyright 21 May 2005 - (c) 2005 Jake Edge <jake@edge2.net> | ||||
| # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> | # Copyright 2005-2007 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import copy | import copy | ||||
| import mimetypes | import mimetypes | ||||
| import os | import os | ||||
| import re | import re | ||||
| from ..i18n import _ | from ..i18n import _ | ||||
| from ..node import hex, short | from ..node import hex, short | ||||
| from ..pycompat import getattr | |||||
| from .common import ( | from .common import ( | ||||
| ErrorResponse, | ErrorResponse, | ||||
| HTTP_FORBIDDEN, | HTTP_FORBIDDEN, | ||||
| HTTP_NOT_FOUND, | HTTP_NOT_FOUND, | ||||
| get_contact, | get_contact, | ||||
| paritygen, | paritygen, | ||||
| staticfile, | staticfile, | ||||
| # hgweb/wsgicgi.py - CGI->WSGI translator | # hgweb/wsgicgi.py - CGI->WSGI translator | ||||
| # | # | ||||
| # Copyright 2006 Eric Hopper <hopper@omnifarious.org> | # Copyright 2006 Eric Hopper <hopper@omnifarious.org> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| # | # | ||||
| # This was originally copied from the public domain code at | # This was originally copied from the public domain code at | ||||
| # http://www.python.org/dev/peps/pep-0333/#the-server-gateway-side | # http://www.python.org/dev/peps/pep-0333/#the-server-gateway-side | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import os | import os | ||||
| from ..pycompat import getattr | |||||
| from .. import pycompat | from .. import pycompat | ||||
| from ..utils import procutil | from ..utils import procutil | ||||
| from . import common | from . import common | ||||
| def launch(application): | def launch(application): | ||||
| # hook.py - hook support for mercurial | # hook.py - hook support for mercurial | ||||
| # | # | ||||
| # Copyright 2007 Matt Mackall <mpm@selenic.com> | # Copyright 2007 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import os | import os | ||||
| import sys | import sys | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| demandimport, | demandimport, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| import errno | import errno | ||||
| import io | import io | ||||
| import os | import os | ||||
| import socket | import socket | ||||
| import struct | import struct | ||||
| import weakref | import weakref | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| bundle2, | bundle2, | ||||
| error, | error, | ||||
| httpconnection, | httpconnection, | ||||
| pycompat, | pycompat, | ||||
| statichttprepo, | statichttprepo, | ||||
| url as urlmod, | url as urlmod, | ||||
| util, | util, | ||||
| # i18n.py - internationalization support for mercurial | # i18n.py - internationalization support for mercurial | ||||
| # | # | ||||
| # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import gettext as gettextmod | import gettext as gettextmod | ||||
| import locale | import locale | ||||
| import os | import os | ||||
| import sys | import sys | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| # modelled after templater.templatepath: | # modelled after templater.templatepath: | ||||
| if getattr(sys, 'frozen', None) is not None: | if getattr(sys, 'frozen', None) is not None: | ||||
| module = pycompat.sysexecutable | module = pycompat.sysexecutable | ||||
| import collections | import collections | ||||
| import errno | import errno | ||||
| import hashlib | import hashlib | ||||
| import socket | import socket | ||||
| import sys | import sys | ||||
| import threading | import threading | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| node, | node, | ||||
| pycompat, | pycompat, | ||||
| urllibcompat, | urllibcompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import procutil | from .utils import procutil | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| bookmarks, | bookmarks, | ||||
| branchmap, | branchmap, | ||||
| bundle2, | bundle2, | ||||
| changegroup, | changegroup, | ||||
| color, | color, | ||||
| context, | context, | ||||
| dirstate, | dirstate, | ||||
| import errno | import errno | ||||
| import os | import os | ||||
| import signal | import signal | ||||
| import socket | import socket | ||||
| import time | import time | ||||
| import warnings | import warnings | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from __future__ import absolute_import, print_function | from __future__ import absolute_import, print_function | ||||
| import _lsprof | import _lsprof | ||||
| import sys | import sys | ||||
| from .pycompat import getattr | |||||
| Profiler = _lsprof.Profiler | Profiler = _lsprof.Profiler | ||||
| # PyPy doesn't expose profiler_entry from the module. | # PyPy doesn't expose profiler_entry from the module. | ||||
| profiler_entry = getattr(_lsprof, 'profiler_entry', None) | profiler_entry = getattr(_lsprof, 'profiler_entry', None) | ||||
| __all__ = [b'profile', b'Stats'] | __all__ = [b'profile', b'Stats'] | ||||
| import email.parser | import email.parser | ||||
| import io | import io | ||||
| import os | import os | ||||
| import smtplib | import smtplib | ||||
| import socket | import socket | ||||
| import time | import time | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| sslutil, | sslutil, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import ( | from .utils import ( | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| mdiff, | mdiff, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| revlog, | revlog, | ||||
| util, | util, | ||||
| ) | ) | ||||
| # mdiff.py - diff and patch routines for mercurial | # mdiff.py - diff and patch routines for mercurial | ||||
| # | # | ||||
| # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import re | import re | ||||
| import struct | import struct | ||||
| import zlib | import zlib | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import dateutil | from .utils import dateutil | ||||
| # narrowspec.py - methods for working with a narrow view of a repository | # narrowspec.py - methods for working with a narrow view of a repository | ||||
| # | # | ||||
| # Copyright 2017 Google, Inc. | # Copyright 2017 Google, Inc. | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from .interfaces import repository | from .interfaces import repository | ||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| match as matchmod, | match as matchmod, | ||||
| merge, | merge, | ||||
| scmutil, | scmutil, | ||||
| sparse, | sparse, | ||||
| util, | util, | ||||
| """ | """ | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import hashlib | import hashlib | ||||
| import struct | import struct | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| node, | node, | ||||
| obsutil, | obsutil, | ||||
| phases, | phases, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| ) | ) | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| smartset, | smartset, | ||||
| txnutil, | txnutil, | ||||
| util, | util, | ||||
| ) | ) | ||||
| # policy.py - module policy logic for Mercurial. | # policy.py - module policy logic for Mercurial. | ||||
| # | # | ||||
| # Copyright 2015 Gregory Szorc <gregory.szorc@gmail.com> | # Copyright 2015 Gregory Szorc <gregory.szorc@gmail.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import os | import os | ||||
| import sys | import sys | ||||
| from .pycompat import getattr | |||||
| # Rules for how modules can be loaded. Values are: | # Rules for how modules can be loaded. Values are: | ||||
| # | # | ||||
| # c - require C extensions | # c - require C extensions | ||||
| # rust+c - require Rust and C extensions | # rust+c - require Rust and C extensions | ||||
| # rust+c-allow - allow Rust and C extensions with fallback to pure Python | # rust+c-allow - allow Rust and C extensions with fallback to pure Python | ||||
| # for each | # for each | ||||
| # allow - allow pure Python implementation when C loading fails | # allow - allow pure Python implementation when C loading fails | ||||
| # cffi - required cffi versions (implemented within pure module) | # cffi - required cffi versions (implemented within pure module) | ||||
| import re | import re | ||||
| import select | import select | ||||
| import stat | import stat | ||||
| import sys | import sys | ||||
| import tempfile | import tempfile | ||||
| import unicodedata | import unicodedata | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| osutil = policy.importmod(r'osutil') | osutil = policy.importmod(r'osutil') | ||||
| # profiling.py - profiling functions | # profiling.py - profiling functions | ||||
| # | # | ||||
| # Copyright 2016 Gregory Szorc <gregory.szorc@gmail.com> | # Copyright 2016 Gregory Szorc <gregory.szorc@gmail.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import, print_function | from __future__ import absolute_import, print_function | ||||
| import contextlib | import contextlib | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import open | from .pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| extensions, | extensions, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| # osutil.py - pure Python version of osutil.c | # osutil.py - pure Python version of osutil.c | ||||
| # | # | ||||
| # Copyright 2009 Matt Mackall <mpm@selenic.com> and others | # Copyright 2009 Matt Mackall <mpm@selenic.com> and others | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import, division | from __future__ import absolute_import, division | ||||
| import ctypes | import ctypes | ||||
| import ctypes.util | import ctypes.util | ||||
| import os | import os | ||||
| import socket | import socket | ||||
| import stat as statmod | import stat as statmod | ||||
| from ..pycompat import getattr | |||||
| from .. import ( | from .. import ( | ||||
| encoding, | encoding, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| def _mode_to_kind(mode): | def _mode_to_kind(mode): | ||||
| if statmod.S_ISREG(mode): | if statmod.S_ISREG(mode): | ||||
| bytestr = str | bytestr = str | ||||
| iterbytestr = iter | iterbytestr = iter | ||||
| maybebytestr = identity | maybebytestr = identity | ||||
| sysbytes = identity | sysbytes = identity | ||||
| sysstr = identity | sysstr = identity | ||||
| strurl = identity | strurl = identity | ||||
| bytesurl = identity | bytesurl = identity | ||||
| open = open | open = open | ||||
| getattr = getattr | |||||
| hasattr = hasattr | hasattr = hasattr | ||||
| setattr = setattr | setattr = setattr | ||||
| # this can't be parsed on Python 3 | # this can't be parsed on Python 3 | ||||
| exec(b'def raisewithtb(exc, tb):\n' b' raise exc, None, tb\n') | exec(b'def raisewithtb(exc, tb):\n' b' raise exc, None, tb\n') | ||||
| def fsencode(filename): | def fsencode(filename): | ||||
| """ | """ | ||||
| # repoview.py - Filtered view of a localrepo object | # repoview.py - Filtered view of a localrepo object | ||||
| # | # | ||||
| # Copyright 2012 Pierre-Yves David <pierre-yves.david@ens-lyon.org> | # Copyright 2012 Pierre-Yves David <pierre-yves.david@ens-lyon.org> | ||||
| # Logilab SA <contact@logilab.fr> | # Logilab SA <contact@logilab.fr> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import copy | import copy | ||||
| import weakref | import weakref | ||||
| from .node import nullrev | from .node import nullrev | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| obsolete, | obsolete, | ||||
| phases, | phases, | ||||
| pycompat, | pycompat, | ||||
| tags as tagsmod, | tags as tagsmod, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import repoviewutil | from .utils import repoviewutil | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| wdirfilenodeids, | wdirfilenodeids, | ||||
| wdirhex, | wdirhex, | ||||
| wdirid, | wdirid, | ||||
| wdirrev, | wdirrev, | ||||
| ) | ) | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from .revlogutils.constants import ( | from .revlogutils.constants import ( | ||||
| FLAG_GENERALDELTA, | FLAG_GENERALDELTA, | ||||
| FLAG_INLINE_DATA, | FLAG_INLINE_DATA, | ||||
| REVLOGV0, | REVLOGV0, | ||||
| REVLOGV1, | REVLOGV1, | ||||
| REVLOGV1_FLAGS, | REVLOGV1_FLAGS, | ||||
| REVLOGV2, | REVLOGV2, | ||||
| REVLOGV2_FLAGS, | REVLOGV2_FLAGS, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import collections | import collections | ||||
| import struct | import struct | ||||
| # import stuff from node for others to import from revlog | # import stuff from node for others to import from revlog | ||||
| from ..node import nullrev | from ..node import nullrev | ||||
| from ..i18n import _ | from ..i18n import _ | ||||
| from ..pycompat import getattr | |||||
| from .constants import ( | from .constants import ( | ||||
| REVIDX_ISCENSORED, | REVIDX_ISCENSORED, | ||||
| REVIDX_RAWTEXT_CHANGING_FLAGS, | REVIDX_RAWTEXT_CHANGING_FLAGS, | ||||
| ) | ) | ||||
| from ..thirdparty import attr | from ..thirdparty import attr | ||||
| # revset.py - revision set queries for mercurial | # revset.py - revision set queries for mercurial | ||||
| # | # | ||||
| # Copyright 2010 Matt Mackall <mpm@selenic.com> | # Copyright 2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import re | import re | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| dagop, | dagop, | ||||
| destutil, | destutil, | ||||
| diffutil, | diffutil, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| hbisect, | hbisect, | ||||
| match as matchmod, | match as matchmod, | ||||
| # revsetlang.py - parser, tokenizer and utility for revision set language | # revsetlang.py - parser, tokenizer and utility for revision set language | ||||
| # | # | ||||
| # Copyright 2010 Matt Mackall <mpm@selenic.com> | # Copyright 2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import string | import string | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| node, | node, | ||||
| parser, | parser, | ||||
| pycompat, | pycompat, | ||||
| smartset, | smartset, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import array | import array | ||||
| import errno | import errno | ||||
| import fcntl | import fcntl | ||||
| import os | import os | ||||
| import sys | import sys | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| # BSD 'more' escapes ANSI color sequences by default. This can be disabled by | # BSD 'more' escapes ANSI color sequences by default. This can be disabled by | ||||
| # $MORE variable, but there's no compatible option with Linux 'more'. Given | # $MORE variable, but there's no compatible option with Linux 'more'. Given | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| short, | short, | ||||
| wdirid, | wdirid, | ||||
| wdirrev, | wdirrev, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| copies as copiesmod, | copies as copiesmod, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| match as matchmod, | match as matchmod, | ||||
| obsolete, | obsolete, | ||||
| obsutil, | obsutil, | ||||
| # smartset.py - data structure for revision set | # smartset.py - data structure for revision set | ||||
| # | # | ||||
| # Copyright 2010 Matt Mackall <mpm@selenic.com> | # Copyright 2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import stringutil | from .utils import stringutil | ||||
| # sshpeer.py - ssh repository proxy class for mercurial | # sshpeer.py - ssh repository proxy class for mercurial | ||||
| # | # | ||||
| # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import re | import re | ||||
| import uuid | import uuid | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| wireprotoserver, | wireprotoserver, | ||||
| wireprototypes, | wireprototypes, | ||||
| wireprotov1peer, | wireprotov1peer, | ||||
| wireprotov1server, | wireprotov1server, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import hashlib | import hashlib | ||||
| import os | import os | ||||
| import re | import re | ||||
| import ssl | import ssl | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| node, | node, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import ( | from .utils import ( | ||||
| # store.py - repository store handling for Mercurial | # store.py - repository store handling for Mercurial | ||||
| # | # | ||||
| # Copyright 2008 Matt Mackall <mpm@selenic.com> | # Copyright 2008 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import functools | import functools | ||||
| import hashlib | import hashlib | ||||
| import os | import os | ||||
| import stat | import stat | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| changelog, | changelog, | ||||
| error, | error, | ||||
| manifest, | manifest, | ||||
| node, | node, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| # subrepoutil.py - sub-repository operations and substate handling | # subrepoutil.py - sub-repository operations and substate handling | ||||
| # | # | ||||
| # Copyright 2009-2010 Matt Mackall <mpm@selenic.com> | # Copyright 2009-2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import errno | import errno | ||||
| import os | import os | ||||
| import posixpath | import posixpath | ||||
| import re | import re | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| config, | config, | ||||
| error, | error, | ||||
| filemerge, | filemerge, | ||||
| pathutil, | pathutil, | ||||
| phases, | phases, | ||||
| util, | util, | ||||
| ) | ) | ||||
| """ | """ | ||||
| from __future__ import absolute_import, print_function | from __future__ import absolute_import, print_function | ||||
| import abc | import abc | ||||
| import os | import os | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| config, | config, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| parser, | parser, | ||||
| pycompat, | pycompat, | ||||
| templatefilters, | templatefilters, | ||||
| templatefuncs, | templatefuncs, | ||||
| # templateutil.py - utility for template evaluation | # templateutil.py - utility for template evaluation | ||||
| # | # | ||||
| # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | # Copyright 2005, 2006 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import abc | import abc | ||||
| import types | import types | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .utils import ( | from .utils import ( | ||||
| dateutil, | dateutil, | ||||
| stringutil, | stringutil, | ||||
| # storage.py - Testing of storage primitives. | # storage.py - Testing of storage primitives. | ||||
| # | # | ||||
| # Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> | # Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import unittest | import unittest | ||||
| from ..node import ( | from ..node import ( | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| nullrev, | nullrev, | ||||
| ) | ) | ||||
| from ..pycompat import getattr | |||||
| from .. import ( | from .. import ( | ||||
| error, | error, | ||||
| mdiff, | mdiff, | ||||
| ) | ) | ||||
| from ..interfaces import repository | from ..interfaces import repository | ||||
| from ..utils import storageutil | from ..utils import storageutil | ||||
| import socket | import socket | ||||
| import subprocess | import subprocess | ||||
| import sys | import sys | ||||
| import traceback | import traceback | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import hex | from .node import hex | ||||
| from .pycompat import ( | from .pycompat import ( | ||||
| getattr, | |||||
| open, | open, | ||||
| setattr, | setattr, | ||||
| ) | ) | ||||
| from . import ( | from . import ( | ||||
| color, | color, | ||||
| config, | config, | ||||
| configitems, | configitems, | ||||
| # unionrepo.py - repository class for viewing union of repository changesets | # unionrepo.py - repository class for viewing union of repository changesets | ||||
| # | # | ||||
| # Derived from bundlerepo.py | # Derived from bundlerepo.py | ||||
| # Copyright 2006, 2007 Benoit Boissinot <bboissin@gmail.com> | # Copyright 2006, 2007 Benoit Boissinot <bboissin@gmail.com> | ||||
| # Copyright 2013 Unity Technologies, Mads Kiilerich <madski@unity3d.com> | # Copyright 2013 Unity Technologies, Mads Kiilerich <madski@unity3d.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| """Repository class for "in-memory pull" of one local repository to another, | """Repository class for "in-memory pull" of one local repository to another, | ||||
| allowing operations like diff and log with revsets. | allowing operations like diff and log with revsets. | ||||
| """ | """ | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| changelog, | changelog, | ||||
| cmdutil, | cmdutil, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| filelog, | filelog, | ||||
| localrepo, | localrepo, | ||||
| # upgrade.py - functions for in place upgrade of Mercurial repository | # upgrade.py - functions for in place upgrade of Mercurial repository | ||||
| # | # | ||||
| # Copyright (c) 2016-present, Gregory Szorc | # Copyright (c) 2016-present, Gregory Szorc | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import stat | import stat | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| changelog, | changelog, | ||||
| error, | error, | ||||
| filelog, | filelog, | ||||
| hg, | hg, | ||||
| localrepo, | localrepo, | ||||
| manifest, | manifest, | ||||
| pycompat, | pycompat, | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import base64 | import base64 | ||||
| import os | import os | ||||
| import socket | import socket | ||||
| import sys | import sys | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| httpconnection as httpconnectionmod, | httpconnection as httpconnectionmod, | ||||
| keepalive, | keepalive, | ||||
| pycompat, | pycompat, | ||||
| sslutil, | sslutil, | ||||
| urllibcompat, | urllibcompat, | ||||
| # urllibcompat.py - adapters to ease using urllib2 on Py2 and urllib on Py3 | # urllibcompat.py - adapters to ease using urllib2 on Py2 and urllib on Py3 | ||||
| # | # | ||||
| # Copyright 2017 Google, Inc. | # Copyright 2017 Google, Inc. | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .pycompat import getattr | |||||
| from . import pycompat | from . import pycompat | ||||
| _sysstr = pycompat.sysstr | _sysstr = pycompat.sysstr | ||||
| class _pycompatstub(object): | class _pycompatstub(object): | ||||
| def __init__(self): | def __init__(self): | ||||
| self._aliases = {} | self._aliases = {} | ||||
| import stat | import stat | ||||
| import sys | import sys | ||||
| import time | import time | ||||
| import traceback | import traceback | ||||
| import warnings | import warnings | ||||
| from .thirdparty import attr | from .thirdparty import attr | ||||
| from .pycompat import ( | from .pycompat import ( | ||||
| getattr, | |||||
| open, | open, | ||||
| setattr, | setattr, | ||||
| ) | ) | ||||
| from hgdemandimport import tracing | from hgdemandimport import tracing | ||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| i18n, | i18n, | ||||
| # compression.py - Mercurial utility functions for compression | # compression.py - Mercurial utility functions for compression | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import, print_function | from __future__ import absolute_import, print_function | ||||
| import bz2 | import bz2 | ||||
| import collections | import collections | ||||
| import zlib | import zlib | ||||
| from ..pycompat import getattr | |||||
| from .. import ( | from .. import ( | ||||
| error, | error, | ||||
| i18n, | i18n, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| from . import stringutil | from . import stringutil | ||||
| safehasattr = pycompat.safehasattr | safehasattr = pycompat.safehasattr | ||||
| import io | import io | ||||
| import os | import os | ||||
| import signal | import signal | ||||
| import subprocess | import subprocess | ||||
| import sys | import sys | ||||
| import time | import time | ||||
| from ..i18n import _ | from ..i18n import _ | ||||
| from ..pycompat import open | from ..pycompat import ( | ||||
| getattr, | |||||
| open, | |||||
| ) | |||||
| from .. import ( | from .. import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| ) | ) | ||||
| # vfs.py - Mercurial 'vfs' classes | # vfs.py - Mercurial 'vfs' classes | ||||
| # | # | ||||
| # Copyright Matt Mackall <mpm@selenic.com> | # Copyright Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import contextlib | import contextlib | ||||
| import errno | import errno | ||||
| import os | import os | ||||
| import shutil | import shutil | ||||
| import stat | import stat | ||||
| import threading | import threading | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pathutil, | pathutil, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| ) | ) | ||||
| import msvcrt | import msvcrt | ||||
| import os | import os | ||||
| import re | import re | ||||
| import stat | import stat | ||||
| import string | import string | ||||
| import sys | import sys | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| policy, | policy, | ||||
| pycompat, | pycompat, | ||||
| win32, | win32, | ||||
| ) | ) | ||||
| # `hg help internals.wireprotocol`. | # `hg help internals.wireprotocol`. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import collections | import collections | ||||
| import struct | import struct | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from .thirdparty import attr | from .thirdparty import attr | ||||
| from . import ( | from . import ( | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| wireprototypes, | wireprototypes, | ||||
| ) | ) | ||||
| # Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> | # Copyright 2018 Gregory Szorc <gregory.szorc@gmail.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| from .node import ( | from .node import ( | ||||
| bin, | bin, | ||||
| hex, | hex, | ||||
| ) | ) | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .pycompat import getattr | |||||
| from .thirdparty import attr | from .thirdparty import attr | ||||
| from . import ( | from . import ( | ||||
| error, | error, | ||||
| util, | util, | ||||
| ) | ) | ||||
| from .interfaces import util as interfaceutil | from .interfaces import util as interfaceutil | ||||
| from .utils import compression | from .utils import compression | ||||
| # wireprotov1peer.py - Client-side functionality for wire protocol version 1. | # wireprotov1peer.py - Client-side functionality for wire protocol version 1. | ||||
| # | # | ||||
| # Copyright 2005-2010 Matt Mackall <mpm@selenic.com> | # Copyright 2005-2010 Matt Mackall <mpm@selenic.com> | ||||
| # | # | ||||
| # This software may be used and distributed according to the terms of the | # This software may be used and distributed according to the terms of the | ||||
| # GNU General Public License version 2 or any later version. | # GNU General Public License version 2 or any later version. | ||||
| from __future__ import absolute_import | from __future__ import absolute_import | ||||
| import hashlib | import hashlib | ||||
| import sys | import sys | ||||
| import weakref | import weakref | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import bin | from .node import bin | ||||
| from .pycompat import setattr | from .pycompat import ( | ||||
| getattr, | |||||
| setattr, | |||||
| ) | |||||
| from . import ( | from . import ( | ||||
| bundle2, | bundle2, | ||||
| changegroup as changegroupmod, | changegroup as changegroupmod, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| pushkey as pushkeymod, | pushkey as pushkeymod, | ||||
| pycompat, | pycompat, | ||||
| util, | util, | ||||
| import binascii | import binascii | ||||
| import os | import os | ||||
| from .i18n import _ | from .i18n import _ | ||||
| from .node import ( | from .node import ( | ||||
| hex, | hex, | ||||
| nullid, | nullid, | ||||
| ) | ) | ||||
| from .pycompat import getattr | |||||
| from . import ( | from . import ( | ||||
| bundle2, | bundle2, | ||||
| changegroup as changegroupmod, | changegroup as changegroupmod, | ||||
| discovery, | discovery, | ||||
| encoding, | encoding, | ||||
| error, | error, | ||||
| exchange, | exchange, | ||||