comparison mercurial/hg.py @ 49305:53e9422a9b45

py3: catch FileExistsError instead of checking errno == EEXIST
author Manuel Jacob <me@manueljacob.de>
date Tue, 31 May 2022 21:16:17 +0200
parents c463f45fa114
children 1e6c37360527 7d6c8943353a
comparison
equal deleted inserted replaced
49304:48f1b314056b 49305:53e9422a9b45
5 # 5 #
6 # This software may be used and distributed according to the terms of the 6 # This software may be used and distributed according to the terms of the
7 # GNU General Public License version 2 or any later version. 7 # GNU General Public License version 2 or any later version.
8 8
9 9
10 import errno
11 import os 10 import os
12 import posixpath 11 import posixpath
13 import shutil 12 import shutil
14 import stat 13 import stat
15 import weakref 14 import weakref
526 # 2 clients may race creating or populating it. 525 # 2 clients may race creating or populating it.
527 pooldir = os.path.dirname(sharepath) 526 pooldir = os.path.dirname(sharepath)
528 # lock class requires the directory to exist. 527 # lock class requires the directory to exist.
529 try: 528 try:
530 util.makedir(pooldir, False) 529 util.makedir(pooldir, False)
531 except OSError as e: 530 except FileExistsError:
532 if e.errno != errno.EEXIST: 531 pass
533 raise
534 532
535 poolvfs = vfsmod.vfs(pooldir) 533 poolvfs = vfsmod.vfs(pooldir)
536 basename = os.path.basename(sharepath) 534 basename = os.path.basename(sharepath)
537 535
538 with lock.lock(poolvfs, b'%s.lock' % basename): 536 with lock.lock(poolvfs, b'%s.lock' % basename):
891 peeropts, 889 peeropts,
892 dest, 890 dest,
893 create=True, 891 create=True,
894 createopts=createopts, 892 createopts=createopts,
895 ) 893 )
896 except OSError as inst: 894 except FileExistsError:
897 if inst.errno == errno.EEXIST: 895 cleandir = None
898 cleandir = None 896 raise error.Abort(_(b"destination '%s' already exists") % dest)
899 raise error.Abort(
900 _(b"destination '%s' already exists") % dest
901 )
902 raise
903 897
904 if revs: 898 if revs:
905 if not srcpeer.capable(b'lookup'): 899 if not srcpeer.capable(b'lookup'):
906 raise error.Abort( 900 raise error.Abort(
907 _( 901 _(