provide --color option for all ref-filter users
When ref-filter learned about want_color() in 11b087adfd
(ref-filter: consult want_color() before emitting colors,
2017-07-13), it became useful to be able to turn colors off
and on for specific commands. For git-branch, you can do so
with --color/--no-color.
But for git-for-each-ref and git-tag, the other users of
ref-filter, you have no option except to tweak the
"color.ui" config setting. Let's give both of these commands
the usual color command-line options.
This is a bit more obvious as a method for overriding the
config. And it also prepares us for the behavior of "always"
changing (so that we are still left with a way of forcing
color when our output goes to a non-terminal).
Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
			
			
				maint
			
			
		
							parent
							
								
									8126b1267c
								
							
						
					
					
						commit
						0c88bf5050
					
				|  | @ -55,6 +55,11 @@ OPTIONS | ||||||
| 	literally, in the latter case matching completely or from the | 	literally, in the latter case matching completely or from the | ||||||
| 	beginning up to a slash. | 	beginning up to a slash. | ||||||
|  |  | ||||||
|  | --color[=<when>]: | ||||||
|  | 	Respect any colors specified in the `--format` option. The | ||||||
|  | 	`<when>` field must be one of `always`, `never`, or `auto` (if | ||||||
|  | 	`<when>` is absent, behave as if `always` was given). | ||||||
|  |  | ||||||
| --shell:: | --shell:: | ||||||
| --perl:: | --perl:: | ||||||
| --python:: | --python:: | ||||||
|  |  | ||||||
|  | @ -115,6 +115,11 @@ options for details. | ||||||
| 	variable if it exists, or lexicographic order otherwise. See | 	variable if it exists, or lexicographic order otherwise. See | ||||||
| 	linkgit:git-config[1]. | 	linkgit:git-config[1]. | ||||||
|  |  | ||||||
|  | --color[=<when>]: | ||||||
|  | 	Respect any colors specified in the `--format` option. The | ||||||
|  | 	`<when>` field must be one of `always`, `never`, or `auto` (if | ||||||
|  | 	`<when>` is absent, behave as if `always` was given). | ||||||
|  |  | ||||||
| -i:: | -i:: | ||||||
| --ignore-case:: | --ignore-case:: | ||||||
| 	Sorting and filtering tags are case insensitive. | 	Sorting and filtering tags are case insensitive. | ||||||
|  |  | ||||||
|  | @ -36,6 +36,7 @@ int cmd_for_each_ref(int argc, const char **argv, const char *prefix) | ||||||
| 		OPT_GROUP(""), | 		OPT_GROUP(""), | ||||||
| 		OPT_INTEGER( 0 , "count", &maxcount, N_("show only <n> matched refs")), | 		OPT_INTEGER( 0 , "count", &maxcount, N_("show only <n> matched refs")), | ||||||
| 		OPT_STRING(  0 , "format", &format.format, N_("format"), N_("format to use for the output")), | 		OPT_STRING(  0 , "format", &format.format, N_("format"), N_("format to use for the output")), | ||||||
|  | 		OPT__COLOR(&format.use_color, N_("respect format colors")), | ||||||
| 		OPT_CALLBACK(0 , "sort", sorting_tail, N_("key"), | 		OPT_CALLBACK(0 , "sort", sorting_tail, N_("key"), | ||||||
| 			    N_("field name to sort on"), &parse_opt_ref_sorting), | 			    N_("field name to sort on"), &parse_opt_ref_sorting), | ||||||
| 		OPT_CALLBACK(0, "points-at", &filter.points_at, | 		OPT_CALLBACK(0, "points-at", &filter.points_at, | ||||||
|  |  | ||||||
|  | @ -411,6 +411,7 @@ int cmd_tag(int argc, const char **argv, const char *prefix) | ||||||
| 		}, | 		}, | ||||||
| 		OPT_STRING(  0 , "format", &format.format, N_("format"), | 		OPT_STRING(  0 , "format", &format.format, N_("format"), | ||||||
| 			   N_("format to use for the output")), | 			   N_("format to use for the output")), | ||||||
|  | 		OPT__COLOR(&format.use_color, N_("respect format colors")), | ||||||
| 		OPT_BOOL('i', "ignore-case", &icase, N_("sorting and filtering are case insensitive")), | 		OPT_BOOL('i', "ignore-case", &icase, N_("sorting and filtering are case insensitive")), | ||||||
| 		OPT_END() | 		OPT_END() | ||||||
| 	}; | 	}; | ||||||
|  |  | ||||||
|  | @ -435,8 +435,8 @@ test_expect_success '%(color) does not show color without tty' ' | ||||||
| 	test_cmp expected.bare actual | 	test_cmp expected.bare actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success 'color.ui=always can override tty check' ' | test_expect_success '--color can override tty check' ' | ||||||
| 	git -c color.ui=always for-each-ref --format="$color_format" >actual.raw && | 	git for-each-ref --color --format="$color_format" >actual.raw && | ||||||
| 	test_decode_color <actual.raw >actual && | 	test_decode_color <actual.raw >actual && | ||||||
| 	test_cmp expected.color actual | 	test_cmp expected.color actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
|  | @ -1919,8 +1919,8 @@ test_expect_success TTY '%(color) present with tty' ' | ||||||
| 	test_cmp expect.color actual | 	test_cmp expect.color actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
| test_expect_success 'color.ui=always overrides auto-color' ' | test_expect_success '--color overrides auto-color' ' | ||||||
| 	git -c color.ui=always tag $color_args >actual.raw && | 	git tag --color $color_args >actual.raw && | ||||||
| 	test_decode_color <actual.raw >actual && | 	test_decode_color <actual.raw >actual && | ||||||
| 	test_cmp expect.color actual | 	test_cmp expect.color actual | ||||||
| ' | ' | ||||||
|  |  | ||||||
		Loading…
	
		Reference in New Issue
	
	 Jeff King
						Jeff King