-
Notifications
You must be signed in to change notification settings - Fork 66
Open
Labels
@ankostis
Description
On Windows, os.rmtree
cannot not remove directories with read-only files; such are the git db directories.
The fix is something like this:
... finally: # Need to collect here to be sure all handles have been closed. It appears # a windows-only issue. In fact things should be deleted, as well as # memory maps closed, once objects go out of scope. For some reason # though this is not the case here unless we collect explicitly. if not keep: gc.collect() # From http://stackoverflow.com/a/4829285/548792 def on_rm_error(func, path, exc_info): import stat os.chmod(path, stat.S_IWRITE) func(path) shutil.rmtree(path, onerror=on_rm_error)