Skip to content
  • Jeff King's avatar
    color_parse: do not mention variable name in error message · f6c5a296
    Jeff King authored and Junio C Hamano's avatar Junio C Hamano committed
    
    
    Originally the color-parsing function was used only for
    config variables. It made sense to pass the variable name so
    that the die() message could be something like:
    
      $ git -c color.branch.plain=bogus branch
      fatal: bad color value 'bogus' for variable 'color.branch.plain'
    
    These days we call it in other contexts, and the resulting
    error messages are a little confusing:
    
      $ git log --pretty='%C(bogus)'
      fatal: bad color value 'bogus' for variable '--pretty format'
    
      $ git config --get-color foo.bar bogus
      fatal: bad color value 'bogus' for variable 'command line'
    
    This patch teaches color_parse to complain only about the
    value, and then return an error code. Config callers can
    then propagate that up to the config parser, which mentions
    the variable name. Other callers can provide a custom
    message. After this patch these three cases now look like:
    
      $ git -c color.branch.plain=bogus branch
      error: invalid color value: bogus
      fatal: unable to parse 'color.branch.plain' from command-line config
    
      $ git log --pretty='%C(bogus)'
      error: invalid color value: bogus
      fatal: unable to parse --pretty format
    
      $ git config --get-color foo.bar bogus
      error: invalid color value: bogus
      fatal: unable to parse default color value
    
    Signed-off-by: default avatarJeff King <peff@peff.net>
    Signed-off-by: default avatarJunio C Hamano <gitster@pobox.com>
    f6c5a296