mercurial/commands.py
changeset 6646 9eb274d773d9
parent 6642 c8c7248f6172
child 6658 7ca74741259f
--- a/mercurial/commands.py	Tue Jun 03 09:34:14 2008 +0200
+++ b/mercurial/commands.py	Tue Jun 03 15:41:09 2008 -0500
@@ -2644,20 +2644,18 @@
     changestates = zip(states, 'MAR!?IC', stat)
 
     if (opts['all'] or opts['copies']) and not opts['no_status']:
-        if opts.get('rev') == []:
-            # fast path, more correct with merge parents
-            copy = repo.dirstate.copies()
-        else:
-            ctxn = repo.changectx(nullid)
-            ctx1 = repo.changectx(node1)
-            ctx2 = repo.changectx(node2)
-            if node2 is None:
-                ctx2 = repo.workingctx()
-            for k, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].items():
-                if v in stat[1]:
-                    copy[v] = k
-                elif k in stat[1]:
-                    copy[k] = v
+        ctxn = repo.changectx(nullid)
+        ctx1 = repo.changectx(node1)
+        ctx2 = repo.changectx(node2)
+        added = stat[1]
+        if node2 is None:
+            added = stat[0] + stat[1] # merged?
+            ctx2 = repo.workingctx()
+        for k, v in copies.copies(repo, ctx1, ctx2, ctxn)[0].items():
+            if k in added:
+                copy[k] = v
+            elif v in added:
+                copy[v] = k
 
     for state, char, files in changestates:
         if state in show: