hgext3rd/evolve/serveronly.py
author Pierre-Yves David <pierre-yves.david@ens-lyon.org>
Thu, 20 Apr 2017 11:41:20 +0200
branchstable
changeset 2275 fff7a678f659
parent 2071 8fbf75ca8a08
child 2276 2d55ae0d6ce7
permissions -rw-r--r--
extension: simplify the extensions helper hierarchy If one mode depends on the other, its extensions helper is merged.
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,
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
    20
        obsexchange,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    21
    )
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
    22
except ValueError as exc:
2071
8fbf75ca8a08 serveronly: replace exc.message with str(exc)
Arun Kulshreshtha <kulshrax@fb.com>
parents: 2063
diff changeset
    23
    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
    24
        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
    25
    # 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
    26
    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
    27
    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
    28
        exthelper,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    29
        metadata,
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
    30
        obsexchange,
2050
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    31
    )
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    32
604ecce27969 serveronly: use the same extensions metadata than evolve
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2047
diff changeset
    33
__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
    34
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
    35
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
    36
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
    37
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
    38
eh = exthelper.exthelper()
302aa8bbb3af exchange: dispatch all code in 'serveronly' to the appropriate submodule
Pierre-Yves David <pierre-yves.david@ens-lyon.org>
parents: 2060
diff changeset
    39
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
    40
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
    41
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
    42
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
    43
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
    44
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
    45
@eh.reposetup
1215
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    46
def reposetup(ui, repo):
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    47
    evolveopts = ui.configlist('experimental', 'evolution')
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    48
    if not evolveopts:
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    49
        evolveopts = 'all'
004e21b8d67b server4simple: remove use of obsolete._enabled
Durham Goode <durham@fb.com>
parents: 1097
diff changeset
    50
        ui.setconfig('experimental', 'evolution', evolveopts)