mirror of
https://github.com/facebook/sapling.git
synced 2024-10-08 15:57:43 +03:00
configitems: register the full 'merge-tools' config and sub-options
We register the merge-tools config section (which has an arbitrary base config value) and the possible sub-attribute. The sub-attribute has to be registered first or at the same time otherwise the '.*' item would shadow them. Merge tools could include "." in their name so we can't constrain any more than just ".*".
This commit is contained in:
parent
549788470a
commit
ed9a31a26e
@ -544,6 +544,60 @@ coreconfigitem('merge', 'on-failure',
|
||||
coreconfigitem('merge', 'preferancestor',
|
||||
default=lambda: ['*'],
|
||||
)
|
||||
coreconfigitem('merge-tools', '.*',
|
||||
default=None,
|
||||
generic=True,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.args$',
|
||||
default="$local $base $other",
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.binary$',
|
||||
default=False,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.check$',
|
||||
default=list,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.checkchanged$',
|
||||
default=False,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.executable$',
|
||||
default=dynamicdefault,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.fixeol$',
|
||||
default=False,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.gui$',
|
||||
default=False,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.priority$',
|
||||
default=0,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.premerge$',
|
||||
default=dynamicdefault,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('merge-tools', r'.*\.symlink$',
|
||||
default=False,
|
||||
generic=True,
|
||||
priority=-1,
|
||||
)
|
||||
coreconfigitem('pager', 'attend-.*',
|
||||
default=dynamicdefault,
|
||||
generic=True,
|
||||
|
@ -29,16 +29,14 @@ from . import (
|
||||
util,
|
||||
)
|
||||
|
||||
def _toolstr(ui, tool, part, default=""):
|
||||
return ui.config("merge-tools", tool + "." + part, default)
|
||||
def _toolstr(ui, tool, part, *args):
|
||||
return ui.config("merge-tools", tool + "." + part, *args)
|
||||
|
||||
def _toolbool(ui, tool, part, default=False):
|
||||
return ui.configbool("merge-tools", tool + "." + part, default)
|
||||
def _toolbool(ui, tool, part,*args):
|
||||
return ui.configbool("merge-tools", tool + "." + part, *args)
|
||||
|
||||
def _toollist(ui, tool, part, default=None):
|
||||
if default is None:
|
||||
default = []
|
||||
return ui.configlist("merge-tools", tool + "." + part, default)
|
||||
def _toollist(ui, tool, part):
|
||||
return ui.configlist("merge-tools", tool + "." + part)
|
||||
|
||||
internals = {}
|
||||
# Merge tools to document.
|
||||
@ -186,8 +184,8 @@ def _picktool(repo, ui, path, binary, symlink, changedelete):
|
||||
for k, v in ui.configitems("merge-tools"):
|
||||
t = k.split('.')[0]
|
||||
if t not in tools:
|
||||
tools[t] = int(_toolstr(ui, t, "priority", "0"))
|
||||
if _toolbool(ui, t, "disabled", False):
|
||||
tools[t] = int(_toolstr(ui, t, "priority"))
|
||||
if _toolbool(ui, t, "disabled"):
|
||||
disabled.add(t)
|
||||
names = tools.keys()
|
||||
tools = sorted([(-p, tool) for tool, p in tools.items()
|
||||
@ -327,7 +325,7 @@ def _premerge(repo, fcd, fco, fca, toolconf, files, labels=None):
|
||||
try:
|
||||
premerge = _toolbool(ui, tool, "premerge", not binary)
|
||||
except error.ConfigError:
|
||||
premerge = _toolstr(ui, tool, "premerge").lower()
|
||||
premerge = _toolstr(ui, tool, "premerge", "").lower()
|
||||
if premerge not in validkeep:
|
||||
_valid = ', '.join(["'" + v + "'" for v in validkeep])
|
||||
raise error.ConfigError(_("%s.premerge not valid "
|
||||
@ -508,7 +506,7 @@ def _xmerge(repo, mynode, orig, fcd, fco, fca, toolconf, files, labels=None):
|
||||
}
|
||||
ui = repo.ui
|
||||
|
||||
args = _toolstr(ui, tool, "args", '$local $base $other')
|
||||
args = _toolstr(ui, tool, "args")
|
||||
if "$output" in args:
|
||||
# read input from backup, write to original
|
||||
out = a
|
||||
|
Loading…
Reference in New Issue
Block a user