mercurial/context.py
changeset 19902 12a8bdd97b4f
parent 19901 4d3ce1646dfc
child 19951 d51c4d85ec23
--- a/mercurial/context.py	Tue Oct 15 00:51:04 2013 +0900
+++ b/mercurial/context.py	Tue Oct 15 00:51:05 2013 +0900
@@ -1173,10 +1173,14 @@
             wlock.release()
 
     def copy(self, source, dest):
-        p = self._repo.wjoin(dest)
-        if not os.path.lexists(p):
+        try:
+            st = self._repo.wvfs.lstat(dest)
+        except OSError, err:
+            if err.errno != errno.ENOENT:
+                raise
             self._repo.ui.warn(_("%s does not exist!\n") % dest)
-        elif not (os.path.isfile(p) or os.path.islink(p)):
+            return
+        if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)):
             self._repo.ui.warn(_("copy failed: %s is not a file or a "
                                  "symbolic link\n") % dest)
         else: