comparison mercurial/context.py @ 49306:2e726c934fcd

py3: catch FileNotFoundError instead of checking errno == ENOENT
author Manuel Jacob <me@manueljacob.de>
date Tue, 31 May 2022 22:50:01 +0200
parents d44e3c45f0e4
children c166b212bdee ae61851e6fe2
comparison
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