Merge branch 'jk/grep-double-dash' into maint
* jk/grep-double-dash: accept "git grep -- pattern"maint
commit
031f82f751
|
@ -868,6 +868,16 @@ int cmd_grep(int argc, const char **argv, const char *prefix)
|
||||||
PARSE_OPT_STOP_AT_NON_OPTION |
|
PARSE_OPT_STOP_AT_NON_OPTION |
|
||||||
PARSE_OPT_NO_INTERNAL_HELP);
|
PARSE_OPT_NO_INTERNAL_HELP);
|
||||||
|
|
||||||
|
/*
|
||||||
|
* skip a -- separator; we know it cannot be
|
||||||
|
* separating revisions from pathnames if
|
||||||
|
* we haven't even had any patterns yet
|
||||||
|
*/
|
||||||
|
if (argc > 0 && !opt.pattern_list && !strcmp(argv[0], "--")) {
|
||||||
|
argv++;
|
||||||
|
argc--;
|
||||||
|
}
|
||||||
|
|
||||||
/* First unrecognized non-option token */
|
/* First unrecognized non-option token */
|
||||||
if (argc > 0 && !opt.pattern_list) {
|
if (argc > 0 && !opt.pattern_list) {
|
||||||
append_grep_pattern(&opt, argv[0], "command line", 0,
|
append_grep_pattern(&opt, argv[0], "command line", 0,
|
||||||
|
|
|
@ -434,4 +434,37 @@ test_expect_success 'grep -Fi' '
|
||||||
test_cmp expected actual
|
test_cmp expected actual
|
||||||
'
|
'
|
||||||
|
|
||||||
|
test_expect_success 'setup double-dash tests' '
|
||||||
|
cat >double-dash <<EOF &&
|
||||||
|
--
|
||||||
|
->
|
||||||
|
other
|
||||||
|
EOF
|
||||||
|
git add double-dash
|
||||||
|
'
|
||||||
|
|
||||||
|
cat >expected <<EOF
|
||||||
|
double-dash:->
|
||||||
|
EOF
|
||||||
|
test_expect_success 'grep -- pattern' '
|
||||||
|
git grep -- "->" >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
test_expect_success 'grep -- pattern -- pathspec' '
|
||||||
|
git grep -- "->" -- double-dash >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
test_expect_success 'grep -e pattern -- path' '
|
||||||
|
git grep -e "->" -- double-dash >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
|
cat >expected <<EOF
|
||||||
|
double-dash:--
|
||||||
|
EOF
|
||||||
|
test_expect_success 'grep -e -- -- path' '
|
||||||
|
git grep -e -- -- double-dash >actual &&
|
||||||
|
test_cmp expected actual
|
||||||
|
'
|
||||||
|
|
||||||
test_done
|
test_done
|
||||||
|
|
Loading…
Reference in New Issue