grep: allow -E and -n to be turned on by default via configuration
Add two configration variables grep.extendedRegexp and grep.lineNumbers to allow the user to skip typing -E and -n on the command line, respectively. Scripts that are meant to be used by random users and/or in random repositories now have use -G and/or --no-line-number options as appropriately to override the settings in the repository or user's ~/.gitconfig settings. Just because the script didn't say "git grep -n" no longer guarantees that the output from the command will not have line numbers. Signed-off-by: Joe Ratterman <jratt0@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>maint
							parent
							
								
									61e8aaf621
								
							
						
					
					
						commit
						b22520a37c
					
				|  | @ -1098,6 +1098,12 @@ All gitcvs variables except for 'gitcvs.usecrlfattr' and | |||
| is one of "ext" and "pserver") to make them apply only for the given | ||||
| access method. | ||||
|  | ||||
| grep.lineNumber:: | ||||
| 	If set to true, enable '-n' option by default. | ||||
|  | ||||
| grep.extendedRegexp:: | ||||
| 	If set to true, enable '--extended-regexp' option by default. | ||||
|  | ||||
| gui.commitmsgwidth:: | ||||
| 	Defines how wide the commit message window is in the | ||||
| 	linkgit:git-gui[1]. "75" is the default. | ||||
|  |  | |||
|  | @ -31,6 +31,16 @@ Look for specified patterns in the tracked files in the work tree, blobs | |||
| registered in the index file, or blobs in given tree objects. | ||||
|  | ||||
|  | ||||
| CONFIGURATION | ||||
| ------------- | ||||
|  | ||||
| grep.lineNumber:: | ||||
| 	If set to true, enable '-n' option by default. | ||||
|  | ||||
| grep.extendedRegexp:: | ||||
| 	If set to true, enable '--extended-regexp' option by default. | ||||
|  | ||||
|  | ||||
| OPTIONS | ||||
| ------- | ||||
| --cached:: | ||||
|  |  | |||
|  | @ -302,6 +302,19 @@ static int grep_config(const char *var, const char *value, void *cb) | |||
| 	default: return 0; | ||||
| 	} | ||||
|  | ||||
| 	if (!strcmp(var, "grep.extendedregexp")) { | ||||
| 		if (git_config_bool(var, value)) | ||||
| 			opt->regflags |= REG_EXTENDED; | ||||
| 		else | ||||
| 			opt->regflags &= ~REG_EXTENDED; | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| 	if (!strcmp(var, "grep.linenumber")) { | ||||
| 		opt->linenum = git_config_bool(var, value); | ||||
| 		return 0; | ||||
| 	} | ||||
|  | ||||
| 	if (!strcmp(var, "color.grep")) | ||||
| 		opt->color = git_config_colorbool(var, value, -1); | ||||
| 	else if (!strcmp(var, "color.grep.context")) | ||||
|  |  | |||
|  | @ -59,7 +59,29 @@ do | |||
| 			echo ${HC}file:4:foo mmap bar_mmap | ||||
| 			echo ${HC}file:5:foo_mmap bar mmap baz | ||||
| 		} >expected && | ||||
| 		git grep -n -w -e mmap $H >actual && | ||||
| 		git -c grep.linenumber=false grep -n -w -e mmap $H >actual && | ||||
| 		test_cmp expected actual | ||||
| 	' | ||||
|  | ||||
| 	test_expect_success "grep -w $L" ' | ||||
| 		{ | ||||
| 			echo ${HC}file:1:foo mmap bar | ||||
| 			echo ${HC}file:3:foo_mmap bar mmap | ||||
| 			echo ${HC}file:4:foo mmap bar_mmap | ||||
| 			echo ${HC}file:5:foo_mmap bar mmap baz | ||||
| 		} >expected && | ||||
| 		git -c grep.linenumber=true grep -w -e mmap $H >actual && | ||||
| 		test_cmp expected actual | ||||
| 	' | ||||
|  | ||||
| 	test_expect_success "grep -w $L" ' | ||||
| 		{ | ||||
| 			echo ${HC}file:foo mmap bar | ||||
| 			echo ${HC}file:foo_mmap bar mmap | ||||
| 			echo ${HC}file:foo mmap bar_mmap | ||||
| 			echo ${HC}file:foo_mmap bar mmap baz | ||||
| 		} >expected && | ||||
| 		git -c grep.linenumber=true grep --no-line-number -w -e mmap $H >actual && | ||||
| 		test_cmp expected actual | ||||
| 	' | ||||
|  | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	 Joe Ratterman
						Joe Ratterman