mercurial/cmdutil.py
changeset 7121 b801d6e5dc83
parent 6980 2268edff1bec
child 7213 b4c035057d34
--- a/mercurial/cmdutil.py	Fri Oct 17 12:12:33 2008 +0200
+++ b/mercurial/cmdutil.py	Sat Oct 18 04:26:09 2008 -0500
@@ -398,12 +398,12 @@
             if state not in 'mn' and not dryrun:
                 repo.dirstate.normallookup(abstarget)
         else:
-            if repo.dirstate[origsrc] == 'a':
+            if repo.dirstate[origsrc] == 'a' and origsrc == abssrc:
                 if not ui.quiet:
                     ui.warn(_("%s has not been committed yet, so no copy "
                               "data will be stored for %s.\n")
                             % (repo.pathto(origsrc, cwd), reltarget))
-                if abstarget not in repo.dirstate and not dryrun:
+                if repo.dirstate[abstarget] in '?r' and not dryrun:
                     repo.add([abstarget])
             elif not dryrun:
                 repo.copy(origsrc, abstarget)