Mercurial > hg-stable
changeset 20838:fe849868fc5a
grep: exit loop immediately, if matching is found in the file for "hg grep -l"
Before this patch, internal function "display()" of "hg grep" is not
efficient for "-l"/"--files-with-matches", because loop is continued,
even after the first matching is found in the specified file.
This patch exits loop immediately, if matching is found for
"--files-with-matches".
In this case, "before is None" is equal to "opts.get('files_with_matches')".
author | FUJIWARA Katsunori <foozy@lares.dti.ne.jp> |
---|---|
date | Sat, 15 Feb 2014 19:54:14 +0900 |
parents | 191a0ae37767 |
children | 377a111d1cd2 |
files | mercurial/commands.py |
diffstat | 1 files changed, 3 insertions(+), 4 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Sat Feb 15 19:54:05 2014 +0900 +++ b/mercurial/commands.py Sat Feb 15 19:54:14 2014 +0900 @@ -3364,10 +3364,7 @@ cols.append((ui.shortuser(ctx.user()), 'grep.user')) if opts.get('date'): cols.append((datefunc(ctx.date()), 'grep.date')) - if opts.get('files_with_matches'): - if found: - continue - else: + if not opts.get('files_with_matches'): before = l.line[:l.colstart] match = l.line[l.colstart:l.colend] after = l.line[l.colend:] @@ -3385,6 +3382,8 @@ ui.write(after) ui.write(eol) found = True + if before is None: + break return found skip = {}