[PATCH] util: postpone and reorder parent calculation in makedirs

Adrian Buehlmann adrian at cadifra.com
Thu Aug 25 04:05:17 CDT 2011


# HG changeset patch
# User Adrian Buehlmann <adrian at cadifra.com>
# Date 1314262996 -7200
# Node ID 3030ec218bf45d1d063b75a16b4df20b7ce751e9
# Parent  ff3e9368630663194c00bf47bee7097936fb4b51
util: postpone and reorder parent calculation in makedirs

diff --git a/mercurial/util.py b/mercurial/util.py
--- a/mercurial/util.py
+++ b/mercurial/util.py
@@ -780,13 +780,15 @@
 
 def makedirs(name, mode=None):
     """recursive directory creation with parent mode inheritance"""
-    parent = os.path.abspath(os.path.dirname(name))
     try:
         os.mkdir(name)
     except OSError, err:
         if err.errno == errno.EEXIST:
             return
-        if not name or parent == name or err.errno != errno.ENOENT:
+        if err.errno != errno.ENOENT or not name:
+            raise
+        parent = os.path.dirname(os.path.abspath(name))
+        if parent == name:
             raise
         makedirs(parent, mode)
         os.mkdir(name)


More information about the Mercurial-devel mailing list