Re: [PATCH 2/2] git-svn: get color config from --get-colorbool
Jeff King <peff@peff.net> wrote:
Show 8 quoted lines
> git-config recently learned a --get-colorbool option. By
> using it, we will get the same color=auto behavior that
> other git commands have.
>
> Specifically, this fixes the case where "color.diff = true"
> meant "always" in git-svn, but "auto" in other programs.
>
> Signed-off-by: Jeff King <peff@peff.net>
Acked-by: Eric Wong <normalperson@yhbt.net>
Show 60 quoted lines
> ---
> git-svn.perl | 35 ++---------------------------------
> 1 files changed, 2 insertions(+), 33 deletions(-)
>
> diff --git a/git-svn.perl b/git-svn.perl
> index 9f884eb..1c42c55 100755
> --- a/git-svn.perl
> +++ b/git-svn.perl
> @@ -3969,39 +3969,7 @@ sub cmt_showable {
> }
>
> sub log_use_color {
> - return 1 if $color;
> - my ($dc, $dcvar);
> - $dcvar = 'color.diff';
> - $dc = `git-config --get $dcvar`;
> - if ($dc eq '') {
> - # nothing at all; fallback to "diff.color"
> - $dcvar = 'diff.color';
> - $dc = `git-config --get $dcvar`;
> - }
> - chomp($dc);
> - if ($dc eq 'auto') {
> - my $pc;
> - $pc = `git-config --get color.pager`;
> - if ($pc eq '') {
> - # does not have it -- fallback to pager.color
> - $pc = `git-config --bool --get pager.color`;
> - }
> - else {
> - $pc = `git-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 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 $color || Git->repository->get_colorbool('color.diff');
> }
>
> sub git_svn_log_cmd {
> @@ -4060,6 +4028,7 @@ sub config_pager {
> } elsif (length $pager == 0 || $pager eq 'cat') {
> $pager = undef;
> }
> + $ENV{GIT_PAGER_IN_USE} = defined($pager);
> }
>
> sub run_pager {
> --
> 1.5.3.7.2230.g796d07-dirty
> --
Eric Wong