git-svn: allow both diff.color and color.diff

The list concensus is to group color related configuration under
"color.*" so let's be consistent.

Inspired by Andy Parkins's patch to do the same for diff/log
family.  With fixes from Eric Wong.

Signed-off-by: Eric Wong <normalperson@yhbt.net>
Signed-off-by: Junio C Hamano <junkio@cox.net>
This commit is contained in:
Junio C Hamano 2006-12-13 15:58:41 -08:00
parent ad2c82c0e1
commit 62e1aeabc0

View File

@ -925,19 +925,38 @@ sub cmt_showable {
sub log_use_color { sub log_use_color {
return 1 if $_color; return 1 if $_color;
my $dc; my ($dc, $dcvar);
chomp($dc = `git-repo-config --get diff.color`); $dcvar = 'color.diff';
$dc = `git-repo-config --get $dcvar`;
if ($dc eq '') {
# nothing at all; fallback to "diff.color"
$dcvar = 'diff.color';
$dc = `git-repo-config --get $dcvar`;
}
chomp($dc);
if ($dc eq 'auto') { if ($dc eq 'auto') {
if (-t *STDOUT || (defined $_pager && my $pc;
`git-repo-config --bool --get pager.color` !~ /^false/)) { $pc = `git-repo-config --get color.pager`;
if ($pc eq '') {
# does not have it -- fallback to pager.color
$pc = `git-repo-config --bool --get pager.color`;
}
else {
$pc = `git-repo-config --bool --get color.pager`;
if ($?) {
$pc = 'false';
}
}
chomp($pc);
if (-t *STDOUT || (defined $_pager && $pc eq 'true')) {
return ($ENV{TERM} && $ENV{TERM} ne 'dumb'); return ($ENV{TERM} && $ENV{TERM} ne 'dumb');
} }
return 0; return 0;
} }
return 0 if $dc eq 'never'; return 0 if $dc eq 'never';
return 1 if $dc eq 'always'; return 1 if $dc eq 'always';
chomp($dc = `git-repo-config --bool --get diff.color`); chomp($dc = `git-repo-config --bool --get $dcvar`);
$dc eq 'true'; return ($dc eq 'true');
} }
sub git_svn_log_cmd { sub git_svn_log_cmd {