[PATCH 3 of 5 V2] ui: change flag for curses interface to ui.curses

Pierre-Yves David pierre-yves.david at ens-lyon.org
Mon Jun 1 09:16:01 UTC 2015



On 05/29/2015 10:29 AM, Laurent Charignon wrote:
> # HG changeset patch
> # User Laurent Charignon <lcharignon at fb.com>
> # Date 1432850639 25200
> #      Thu May 28 15:03:59 2015 -0700
> # Node ID 2a54d1ceebeac71129f211be67fc2876d01674c2
> # Parent  9e29b782004467e1837c6ddae7091afeda50e485
> ui: change flag for curses interface to ui.curses
>
> Before this patch the flag for the curses interface was experimental.crecord.
> Since this is a ui feature that is no longer experimental we change the config
> flag to ui.curses. We don't have to worry about retrocompatibility as the
> feature was experimental.

I just remind why I was anxious about seeing this "final option name" 
discussion starting. It is because the topic is very complicated.

Topic 1
-------


First, the usual pattern for option like 'curse' 'color' 'mouse' etc is 
to have three value.  "yes", "auto", "no" (yes/no can be true/false).

- yes: make this happen or die
- auto: try to make it happen and skip if you think it will fails
- no: skip this feature.

"yes" is important to have so that (1) people can bypass wrong 
detection, (2) people can have a plain crash to debug.

"auto" is usually the default value (of something enabled by default, so 
not yet).

Topic 2
-------

Do we want this option to be called "curse", curse is a fairly clear 
term for people who have done terminal programming and ... that is about 
it. Should we find a better name and if so, which one? 'advanced' 
'fullscreen' ?


Topic 3
-------

But actually, the question is a bit wider,

1) There will be other commands that could make use of curse (eg: 
histedit, annotate, evolution based history viewing, etc). Do we really 
want a global switch for all of them? How would that config work?

2) There will be likely other -interface- to do this chunk selection. A 
regular idea is to fire a merge tool up and let the used select the 
change through it (eg: base, result, allchange). So do we want a more 
versatile option. eg:

   [ui]
   chunkselector=text (default)
                 curse
                 external

Some alternative option could event be also based on curse if someone 
comes with a better alternative.

-- 
Pierre-Yves David


More information about the Mercurial-devel mailing list