mercurial/context.py
changeset 49306 2e726c934fcd
parent 49284 d44e3c45f0e4
child 49959 c166b212bdee
child 50215 ae61851e6fe2
equal deleted inserted replaced
49305:53e9422a9b45 49306:2e726c934fcd
     4 #
     4 #
     5 # This software may be used and distributed according to the terms of the
     5 # This software may be used and distributed according to the terms of the
     6 # GNU General Public License version 2 or any later version.
     6 # GNU General Public License version 2 or any later version.
     7 
     7 
     8 
     8 
     9 import errno
       
    10 import filecmp
     9 import filecmp
    11 import os
    10 import os
    12 import stat
    11 import stat
    13 
    12 
    14 from .i18n import _
    13 from .i18n import _
  1735             return rejected
  1734             return rejected
  1736 
  1735 
  1737     def copy(self, source, dest):
  1736     def copy(self, source, dest):
  1738         try:
  1737         try:
  1739             st = self._repo.wvfs.lstat(dest)
  1738             st = self._repo.wvfs.lstat(dest)
  1740         except OSError as err:
  1739         except FileNotFoundError:
  1741             if err.errno != errno.ENOENT:
       
  1742                 raise
       
  1743             self._repo.ui.warn(
  1740             self._repo.ui.warn(
  1744                 _(b"%s does not exist!\n") % self._repo.dirstate.pathto(dest)
  1741                 _(b"%s does not exist!\n") % self._repo.dirstate.pathto(dest)
  1745             )
  1742             )
  1746             return
  1743             return
  1747         if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)):
  1744         if not (stat.S_ISREG(st.st_mode) or stat.S_ISLNK(st.st_mode)):
  2167 
  2164 
  2168     def date(self):
  2165     def date(self):
  2169         t, tz = self._changectx.date()
  2166         t, tz = self._changectx.date()
  2170         try:
  2167         try:
  2171             return (self._repo.wvfs.lstat(self._path)[stat.ST_MTIME], tz)
  2168             return (self._repo.wvfs.lstat(self._path)[stat.ST_MTIME], tz)
  2172         except OSError as err:
  2169         except FileNotFoundError:
  2173             if err.errno != errno.ENOENT:
       
  2174                 raise
       
  2175             return (t, tz)
  2170             return (t, tz)
  2176 
  2171 
  2177     def exists(self):
  2172     def exists(self):
  2178         return self._repo.wvfs.exists(self._path)
  2173         return self._repo.wvfs.exists(self._path)
  2179 
  2174