[Eric Wong cc'd because of git-svn relevance] On Wed, Dec 05, 2007 at 06:05:04PM -0800, Junio C Hamano wrote: > This adds an option to help scripts find out color settings from > the configuration file. > > git config --get-colorbool color.diff > > inspects color.diff variable, and exits with status 0 (i.e. success) if > color is to be used. It exits with status 1 otherwise. There is no way to differentiate between "do not use color" and "no value found". This makes it impossible to use this to implement the required "try color.diff, fallback to diff.color" behavior. We could simply make it git config --get-colorbool diff which would check both (and when diff.color support is finally dropped, just remove it from there). git-svn should probably be moved to this interface (it still has the color.diff == true means "always" behavior), but it can't be until the fallback behavior is implemented. Also, your patch doesn't seem to implement the color.pager/pager.color behavior, either (which is probably not important for git-add -i, but is used by git-svn). Anyway, below is a totally untested (I don't even have svn installed, but it passes perl -wc!) patch for git-svn to use the new "true means auto" behavior for color.diff. It would be nice to replace this with a working --get-colorbool, but we should at least unify the behavior before v1.5.4. -Peff --- diff --git a/git-svn.perl b/git-svn.perl index 9f884eb..71f6e93 100755 --- a/git-svn.perl +++ b/git-svn.perl @@ -3979,7 +3979,12 @@ sub log_use_color { $dc = `git-config --get $dcvar`; } chomp($dc); - if ($dc eq 'auto') { + return 0 if $dc eq 'never'; + return 1 if $dc eq 'always'; + if ($dc ne 'auto') { + chomp($dc = `git-config --bool --get $dcvar`); + } + if ($dc eq 'auto' || $dc eq 'true') { my $pc; $pc = `git-config --get color.pager`; if ($pc eq '') { @@ -3998,10 +4003,7 @@ sub log_use_color { } return 0; } - return 0 if $dc eq 'never'; - return 1 if $dc eq 'always'; - chomp($dc = `git-config --bool --get $dcvar`); - return ($dc eq 'true'); + return 0; } sub git_svn_log_cmd { - To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html