hgext3rd/evolve/serveronly.py
author Arun Kulshreshtha <kulshrax@fb.com>
Thu, 09 Mar 2017 12:20:27 -0800
changeset 2071 8fbf75ca8a08
parent 2063 fd8a7e10b7b3
child 2275 fff7a678f659
permissions -rw-r--r--
serveronly: replace exc.message with str(exc) BaseException.message is deprecated in Python 2.6, so use str() instead.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
660
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     1
'''enable experimental obsolescence feature of Mercurial
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     2
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     3
OBSOLESCENCE IS AN EXPERIMENTAL FEATURE MAKE SURE YOU UNDERSTOOD THE INVOLVED
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     4
CONCEPT BEFORE USING IT.
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     5
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     6
/!\ THIS EXTENSION IS INTENDED FOR SERVER SIDE ONLY USAGE /!\
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     7
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     8
For client side usages it is recommended to use the evolve extension for
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
     9
improved user interface.'''
e6e47c432ffd hgext: add a simpler extension to enable obsolete on server
Pierre-Yves David <pierre-yves.david@logilab.fr>
parents:
diff changeset
    10
2047
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    11
from __future__ import absolute_import
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    12
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    13
import sys
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    14
import os
1837
c8b07459c9bb serveronly: clean up imports
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 1808
diff changeset
    15
2047
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    16
try:
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    17
    from . import (
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    18
        exthelper,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    19
        metadata,
2063
fd8a7e10b7b3 discovery: directly merge the 'obsdiscovery' exthelper in top level extensions
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2061
diff changeset
    20
        obsdiscovery,
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    21
        obsexchange,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    22
    )
2047
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    23
except ValueError as exc:
2071
8fbf75ca8a08 serveronly: replace exc.message with str(exc)
Arun Kulshreshtha <kulshrax@fb.com>
parents: 2063
diff changeset
    24
    if str(exc) != 'Attempted relative import in non-package':
2047
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    25
        raise
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    26
    # extension imported using direct path
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    27
    sys.path.insert(0, os.path.dirname(os.path.dirname(__file__)))
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    28
    from evolve import (
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    29
        exthelper,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    30
        metadata,
2063
fd8a7e10b7b3 discovery: directly merge the 'obsdiscovery' exthelper in top level extensions
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2061
diff changeset
    31
        obsdiscovery,
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    32
        obsexchange,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    33
    )
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    34
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    35
__version__ = metadata.__version__
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    36
testedwith = metadata.testedwith
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    37
minimumhgversion = metadata.minimumhgversion
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    38
buglink = metadata.buglink
2047
ce39d0f9976d serveronly: give the sub extension a way to access to the 'evolve' module
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2032
diff changeset
    39
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    40
eh = exthelper.exthelper()
2063
fd8a7e10b7b3 discovery: directly merge the 'obsdiscovery' exthelper in top level extensions
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2061
diff changeset
    41
eh.merge(obsdiscovery.eh)
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    42
eh.merge(obsexchange.eh)
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    43
uisetup = eh.final_uisetup
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    44
extsetup = eh.final_extsetup
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    45
reposetup = eh.final_reposetup
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    46
cmdtable = eh.cmdtable
1245
580a8f5ea462 discovery: port the new hashing version to simple4server
Pierre-Yves David <pierre-yves.david@fb.com>
parents: 1097
diff changeset
    47
2061
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    48
@eh.reposetup
1215
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    49
def reposetup(ui, repo):
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    50
    evolveopts = ui.configlist('experimental', 'evolution')
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    51
    if not evolveopts:
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    52
        evolveopts = 'all'
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    53
        ui.setconfig('experimental', 'evolution', evolveopts)