Re: [PATCH 2/3] git config --get-colorbool

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



[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

[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux