grep: don't look up copy info unless --follow is given
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 06 Sep 2018 15:56:53 -0700
changeset 41367 b44f1703b28c
parent 41366 fabb0224a599
child 41368 609d6d8646db
grep: don't look up copy info unless --follow is given If no --follow was given, then the "copy" variable will become None. In that case we would still look up the copy information from the filelog and then ignore it. Let's avoid even looking it up. Differential Revision: https://phab.mercurial-scm.org/D5620
mercurial/commands.py
--- a/mercurial/commands.py	Thu Jan 17 09:24:30 2019 -0800
+++ b/mercurial/commands.py	Thu Sep 06 15:56:53 2018 -0700
@@ -2944,16 +2944,18 @@
                 fnode = ctx.filenode(fn)
             except error.LookupError:
                 continue
-            try:
-                copied = flog.renamed(fnode)
-            except error.WdirUnsupported:
-                copied = ctx[fn].renamed()
-            copy = follow and copied and copied[0]
-            if copy:
-                copies.setdefault(rev, {})[fn] = copy
+            copy = None
+            if follow:
+                try:
+                    copied = flog.renamed(fnode)
+                except error.WdirUnsupported:
+                    copied = ctx[fn].renamed()
+                copy = copied and copied[0]
+                if copy:
+                    copies.setdefault(rev, {})[fn] = copy
+                    if fn in skip:
+                        skip[copy] = True
             if fn in skip:
-                if copy:
-                    skip[copy] = True
                 continue
             files.append(fn)