Mercurial > public > mercurial-scm > hg-stable
diff mercurial/scmutil.py @ 18678:423eee0b0b14
util: make ensuredirs safer against races
author | Bryan O'Sullivan <bryano@fb.com> |
---|---|
date | Wed, 13 Feb 2013 12:20:10 -0800 |
parents | 4034b8d551b1 |
children | 4c6f7f0dadab |
line wrap: on
line diff
--- a/mercurial/scmutil.py Wed Feb 13 11:07:01 2013 -0800 +++ b/mercurial/scmutil.py Wed Feb 13 12:20:10 2013 -0800 @@ -306,8 +306,7 @@ # to a directory. Let the posixfile() call below raise IOError. if basename: if atomictemp: - if not os.path.isdir(dirname): - util.ensuredirs(dirname, self.createmode) + util.ensuredirs(dirname, self.createmode) return util.atomictempfile(f, mode, self.createmode) try: if 'w' in mode: @@ -325,8 +324,7 @@ if e.errno != errno.ENOENT: raise nlink = 0 - if not os.path.isdir(dirname): - util.ensuredirs(dirname, self.createmode) + util.ensuredirs(dirname, self.createmode) if nlink > 0: if self._trustnlink is None: self._trustnlink = nlink > 1 or util.checknlink(f) @@ -345,9 +343,7 @@ except OSError: pass - dirname = os.path.dirname(linkname) - if not os.path.exists(dirname): - util.ensuredirs(dirname, self.createmode) + util.ensuredirs(os.path.dirname(linkname), self.createmode) if self._cansymlink: try: