trydiff: set filename variables to None even when not opts.git or losedatafn
authorMartin von Zweigbergk <martinvonz@google.com>
Thu, 22 Jan 2015 23:13:48 -0800
changeset 24104 b6f434729b97
parent 24103 c666c85f71ba
child 24105 0f8baebcdbea
trydiff: set filename variables to None even when not opts.git or losedatafn There is not much left of the first block "if opts.git or losedatafn" block now. The next patch will move the call to getfilectx() out of that block. We will then be using the defined-ness of 'f1' to tell whether the file existed in ctx1 (and under what name). We will need this information whether or not opts.git or losedatafn was set, so just remove that guard. The only operation in the block that is not cheap is the call to getfilectx(), but that has an extra 'if opts.git' guard already. --ignore-space-change proves that only 'if opts.git or losedatafn:' was removed.
mercurial/patch.py
--- a/mercurial/patch.py	Thu Jan 22 23:01:00 2015 -0800
+++ b/mercurial/patch.py	Thu Jan 22 23:13:48 2015 -0800
@@ -1780,25 +1780,24 @@
         if f not in removedset:
             content2 = getfilectx(f, ctx2).data()
         f1, f2 = f, f
-        if opts.git or losedatafn:
-            if f in addedset:
-                f1 = None
-                if f in copy:
-                    if opts.git:
-                        f1 = copy[f]
-                        if f1 in removedset and f1 not in gone:
-                            copyop = 'rename'
-                            gone.add(f1)
-                        else:
-                            copyop = 'copy'
-                        content1 = getfilectx(f1, ctx1).data()
-            elif f in removedset:
-                f2 = None
+        if f in addedset:
+            f1 = None
+            if f in copy:
                 if opts.git:
-                    # have we already reported a copy above?
-                    if (f in copyto and copyto[f] in addedset
-                        and copy[copyto[f]] == f):
-                        continue
+                    f1 = copy[f]
+                    if f1 in removedset and f1 not in gone:
+                        copyop = 'rename'
+                        gone.add(f1)
+                    else:
+                        copyop = 'copy'
+                    content1 = getfilectx(f1, ctx1).data()
+        elif f in removedset:
+            f2 = None
+            if opts.git:
+                # have we already reported a copy above?
+                if (f in copyto and copyto[f] in addedset
+                    and copy[copyto[f]] == f):
+                    continue
 
         flag1 = None
         flag2 = None