diff options
author | Albert Yale <surfingalbert@gmail.com> | 2012-01-23 18:52:44 +0100 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2012-01-23 10:49:34 -0800 |
commit | 50dd0f2fd910d9973760db052897ee8e73ed2f1f (patch) | |
tree | 0a8ed13e4ccf7220759728cb4436644bdfc515c0 /t/t7810-grep.sh | |
parent | ced7469f0700216a05b9ca5b58199f3d761a64e5 (diff) | |
download | git-50dd0f2fd910d9973760db052897ee8e73ed2f1f.tar.gz |
grep: fix -l/-L interaction with decoration linestr/grep-l-with-decoration
In threaded mode, git-grep emits file breaks (enabled with context, -W
and --break) into the accumulation buffers even if they are not
required. The output collection thread then uses skip_first_line to
skip the first such line in the output, which would otherwise be at
the very top.
This is wrong when the user also specified -l/-L/-c, in which case
every line is relevant. While arguably giving these options together
doesn't make any sense, git-grep has always quietly accepted it. So
do not skip anything in these cases.
Signed-off-by: Albert Yale <surfingalbert@gmail.com>
Signed-off-by: Thomas Rast <trast@student.ethz.ch>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t7810-grep.sh')
-rwxr-xr-x | t/t7810-grep.sh | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/t/t7810-grep.sh b/t/t7810-grep.sh index 7ba5b16f99..75f4716d8c 100755 --- a/t/t7810-grep.sh +++ b/t/t7810-grep.sh @@ -246,6 +246,28 @@ do done cat >expected <<EOF +file +EOF +test_expect_success 'grep -l -C' ' + git grep -l -C1 foo >actual && + test_cmp expected actual +' + +cat >expected <<EOF +file:5 +EOF +test_expect_success 'grep -l -C' ' + git grep -c -C1 foo >actual && + test_cmp expected actual +' + +test_expect_success 'grep -L -C' ' + git ls-files >expected && + git grep -L -C1 nonexistent_string >actual && + test_cmp expected actual +' + +cat >expected <<EOF file:foo mmap bar_mmap EOF |