--- 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)