[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
- Re: Fixing the configuration madness,
Leo Liu <=