diff -r e7766022a61a -r 7fa011555046 mercurial/commands.py --- a/mercurial/commands.py Fri Sep 02 20:15:37 2016 +0000 +++ b/mercurial/commands.py Fri Sep 23 12:45:10 2016 -0500 @@ -4288,20 +4288,23 @@ _('[OPTION]... PATTERN [FILE]...'), inferrepo=True) def grep(ui, repo, pattern, *pats, **opts): - """search for a pattern in specified files and revisions - - Search revisions of files for a regular expression. - - This command behaves differently than Unix grep. It only accepts - Python/Perl regexps. It searches repository history, not the - working directory. It always prints the revision number in which a - match appears. - - By default, grep only prints output for the first revision of a + """search revision history for a pattern in specified files + + Search revision history for a regular expression in the specified + files or the entire project. + + By default, grep prints the most recent revision number for each file in which it finds a match. To get it to print every revision - that contains a change in match status ("-" for a match that - becomes a non-match, or "+" for a non-match that becomes a match), - use the --all flag. + that contains a change in match status ("-" for a match that becomes + a non-match, or "+" for a non-match that becomes a match), use the + --all flag. + + PATTERN can be any Python (roughly Perl-compatible) regular + expression. + + If no FILEs are specified (and -f/--follow isn't set), all files in + the repository are searched, including those that don't exist in the + current branch or have been deleted in a prior changeset. Returns 0 if a match is found, 1 otherwise. """