Submitter | phabricator |
---|---|
Date | June 15, 2018, 2:13 p.m. |
Message ID | <d4a28841a21e49791f471ad2fa9d6495@localhost.localdomain> |
Download | mbox | patch |
Permalink | /patch/32177/ |
State | Not Applicable |
Headers | show |
Comments
> + allfiles = opts.get('allfiles') > 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 allfiles and len(revs) == 1: Can you make it error out if len(revs) > 1 isn't supported? For example, ``` allfiles = opts.get('allfiles') follow = opts.get('follow') or opts.get('follow_first') revs = _walkrevs(repo, opts) if allfiles and len(revs) > 1: raise error.Abort(_(...)) # or ProgrammingError if that never happens ```
yuja added a comment. > + allfiles = opts.get('allfiles') > > 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 allfiles and len(revs) == 1: Can you make it error out if len(revs) > 1 isn't supported? For example, allfiles = opts.get('allfiles') follow = opts.get('follow') or opts.get('follow_first') revs = _walkrevs(repo, opts) if allfiles and len(revs) > 1: raise error.Abort(_(...)) # or ProgrammingError if that never happens REPOSITORY rHG Mercurial REVISION DETAIL https://phab.mercurial-scm.org/D3728 To: sangeet259, #hg-reviewers Cc: pulkit, yuja, mharbison72, mercurial-devel
Patch
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,20 @@ 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 + $ echo "something else" >> new + $ hg ci -A -m "second commit" + adding new + $ hg grep -r "." "unmod" + [1] + $ hg grep -r "." "unmod" --unmodified + um:1: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')), + ('', 'allfiles', False, + _('include all files in the changeset while grepping (EXPERIMENTAL)')), ('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.''' + allfiles = opts.get('allfiles') 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 allfiles and len(revs) == 1: + fiter = iter(ctx) + else: + fiter = ctx.files() + for f in fiter: if match(f): yield f fns = fns_generator()