Skip to content
  • Jeff King's avatar
    diff: don't load color config in plumbing · 3e1dd17a
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    The diff config callback is split into two functions: one
    which loads "ui" config, and one which loads "basic" config.
    The former chains to the latter, as the diff UI config is a
    superset of the plumbing config.
    
    The color.diff variable is only loaded in the UI config.
    However, the basic config actually chains to
    git_color_default_config, which loads color.ui. This doesn't
    actually cause any bugs, because the plumbing diff code does
    not actually look at the value of color.ui.
    
    However, it is somewhat nonsensical, and it makes it
    difficult to refactor the color code. It probably came about
    because there is no git_color_config to load only color
    config, but rather just git_color_default_config, which
    loads color config and chains to git_default_config.
    
    This patch splits out the color-specific portion of
    git_color_default_config so that the diff UI config can call
    it directly. This is perhaps better explained by the
    chaining of callbacks. Before we had:
    
      git_diff_ui_config
        -> git_diff_basic_config
          -> git_color_default_config
            -> git_default_config
    
    Now we have:
    
      git_diff_ui_config
        -> git_color_config
        -> git_diff_basic_config
          -> git_default_config
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    3e1dd17a