- 
                Notifications
    
You must be signed in to change notification settings  - Fork 68
 
Open
Labels
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)