• J
    config: stop using config_exclusive_filename · 270a3443
    Jeff King 提交于
    The git-config command sometimes operates on the default set
    of config files (either reading from all, or writing to repo
    config), and sometimes operates on a specific file. In the
    latter case, we set the magic global config_exclusive_filename,
    and the code in config.c does the right thing.
    
    Instead, let's have git-config use the "advanced" variants
    of config.c's functions which let it specify an individual
    filename (or NULL for the default). This makes the code a
    lot more obvious, and fixes two small bugs:
    
      1. A relative path specified by GIT_CONFIG=foo will look
         in the wrong directory if we have to chdir as part of
         repository setup. We already handle this properly for
         "git config -f foo", but the GIT_CONFIG lookup used
         config_exclusive_filename directly. By dropping to a
         single magic variable, the GIT_CONFIG case now just
         works.
    
      2. Calling "git config -f foo --edit" would not respect
         core.editor. This is because just before editing, we
         called git_config, which would respect the
         config_exclusive_filename setting, even though this
         particular git_config call was not about looking in the
         user's specified file, but rather about loading actual
         git config, just as any other git program would.
    Signed-off-by: NJeff King <peff@peff.net>
    Signed-off-by: NJunio C Hamano <gitster@pobox.com>
    270a3443
config.c 14.9 KB