bug-global
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Fixing the configuration madness


From: Leo Liu
Subject: Re: Fixing the configuration madness
Date: Sun, 02 Mar 2014 22:25:14 +0800
User-agent: Gnus/5.13 (Gnus v5.13) Emacs/24.3 (OS X 10.9.2)

On 2014-03-01 06:03 +0800, Shigio YAMAGUCHI wrote:
> 2. name of configuration file
>
> These names follow custom.
> gtags.conf: resolv.conf, man.conf, ftpd.conf, ...
> .globalrc: .bashrc, .vimrc, .elvisrc, ...

Yes but we are using the two forms at the same time and that is
confusing. For a while I thought gtags.conf is for gtags (the
exectuable) and globalrc is for global (the exectuable).

> 1. constructed configuration files using override
>
> It seems very complicated. How does it use?

It might be slightly complicated but gives the users the option to have
project-wise settings. Think, for example, how to use .m extension for both
ObjC and Matlab without project-wise settings.

> What kind of problem is there?
>
> 3. use configuration options instead of environment variables
>
> Do you mean that we should use gtags_options (or global_options)
> configuration variable instead of GTAGS_OPTIONS environment variable?
> You are right. It corresponds to htags_options well.

Environment variables are global and can be messy to get right for
different projects.

The idea is instead of:

GTAGSCACHE
GTAGSCONF
GTAGSFORCECPP
GTAGSLABEL
GTAGSLOGGING
MAKEOBJDIR
MAKEOBJDIRPREFIX
......

We use a single configuration file to tweak settings. For example, we
can have a global.config file look like:


cache=whatever
config=whatever
langmap=.......
use_idutils=false
nonfunctions = a,b,c,... ## no .notfunction file any more
files=.... ## list of files to index, no gtags.files any more
color_match=green
color_file=yellow
........................
other gazillion options to add in future


> 4. ability to set and get configuration options, dump, ...
>
> I don't know about 'git config'.
> Would you explain it concrelely?

See the following git config examples

## setting core.filemode to true
$ git config core.filemode true

## To delete the entry for renames, do
$ git config --unset diff.renames

## To query the value
$ git config --get core.filemode

There is also --global that instead of changing current project
settings, it stores the changes in ~/.gitconfig and affects all
projects.


To sum up, the most important feature to have is a way to configure
gnu global on a per-project basis.

Leo




reply via email to

[Prev in Thread] Current Thread [Next in Thread]