git/list[1] front-page[2] threads[3] people[4] search[5] about
 

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

From
Jeff King <peff@peff.net>
Date
Dec 6, 2007, 05:30 UTC
Message-ID
<20071206053059.GF5499@coredump.intra.peff.net>
In-Reply-To
<1196906706-11170-2-git-send-email-gitster@pobox.com>
[Eric Wong cc'd because of git-svn relevance]
On Wed, Dec 05, 2007 at 06:05:04PM -0800, Junio C Hamano wrote:
Show 7 quoted lines
> 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 {
Previous: Wincent ColaiutaNext: Jeff King
Message 13 of 18 in “Color support for "git-add -i"”
  1. Color support for "git-add -i"Junio C Hamano, Dec 5, 2007
  2. Johannes SixtDec 5, 2007
  3. Wincent ColaiutaDec 5, 2007
  4. Junio C HamanoDec 5, 2007
  5. 1/3 Documentation: color.* = true means "auto"Junio C Hamano, Dec 6, 2007
  6. 2/3 git config --get-colorboolJunio C Hamano, Dec 6, 2007
  7. 3/3 Color support for "git-add -i"Junio C Hamano, Dec 6, 2007
  8. 0/3 Reroll colorized "git add -i"Junio C Hamano, Dec 6, 2007
  9. Jeff KingDec 6, 2007
  10. Wincent ColaiutaDec 6, 2007
  11. Junio C HamanoDec 6, 2007
  12. Wincent ColaiutaDec 7, 2007
  13. Jeff KingDec 6, 2007
  14. Jeff KingDec 6, 2007
  15. Junio C HamanoDec 6, 2007
  16. Jeff KingDec 6, 2007
  17. Eric WongDec 6, 2007
  18. Wincent ColaiutaDec 5, 2007

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.