D3728: grep: adds unmodified mode
sangeet259 (Sangeet Kumar Mishra)
phabricator at mercurial-scm.org
Wed Jun 13 12:09:31 UTC 2018
sangeet259 created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
adds an unmodified flag that lets you grep on all files in the revision
and not just the one that were modified in that changeset
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D3728
AFFECTED FILES
mercurial/cmdutil.py
mercurial/commands.py
tests/test-grep.t
CHANGE DETAILS
diff --git a/tests/test-grep.t b/tests/test-grep.t
--- a/tests/test-grep.t
+++ b/tests/test-grep.t
@@ -368,3 +368,15 @@
binfile.bin:0:+: Binary file matches
$ cd ..
+
+Test for showing working of unmodified flag
+
+ $ hg init sng
+ $ cd sng
+ $ echo "unmod" >> um
+ $ hg ci -A -m "adds unmod to um"
+ adding um
+ $ hg grep -r "-1" "unmod"
+ um:0:unmod
+
+ $ cd ..
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -2408,6 +2408,8 @@
('n', 'line-number', None, _('print matching line numbers')),
('r', 'rev', [],
_('only search files changed within revision range'), _('REV')),
+ ('', 'unmodified', False,
+ _('include all files in the changeset while grepping')),
('u', 'user', None, _('list the author (long with -v)')),
('d', 'date', None, _('list the date (short with -q)')),
] + formatteropts + walkopts,
diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py
--- a/mercurial/cmdutil.py
+++ b/mercurial/cmdutil.py
@@ -1881,6 +1881,7 @@
yielding each context, the iterator will first call the prepare
function on each context in the window in forward order.'''
+ unmodified = opts.get('unmodified')
follow = opts.get('follow') or opts.get('follow_first')
revs = _walkrevs(repo, opts)
if not revs:
@@ -1990,7 +1991,11 @@
ctx = change(rev)
if not fns:
def fns_generator():
- for f in ctx.files():
+ if unmodified and len(revs) == 1:
+ fiter = iter(ctx)
+ else:
+ fiter = ctx.files()
+ for f in fiter:
if match(f):
yield f
fns = fns_generator()
To: sangeet259, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list