mercurial/util.py
changeset 18668 4034b8d551b1
parent 18614 b2586e2cc67a
child 18678 423eee0b0b14
--- a/mercurial/util.py	Mon Feb 11 14:50:54 2013 -0800
+++ b/mercurial/util.py	Mon Feb 11 16:15:12 2013 -0800
@@ -880,6 +880,16 @@
     if mode is not None:
         os.chmod(name, mode)
 
+def ensuredirs(name, mode=None):
+    """race-safe recursive directory creation"""
+    try:
+        makedirs(name, mode)
+    except OSError, err:
+        if err.errno == errno.EEXIST and os.path.isdir(name):
+            # someone else seems to have won a directory creation race
+            return
+        raise
+
 def readfile(path):
     fp = open(path, 'rb')
     try: