Closed
Description
Hi, we've observed a regression in 3.1.25 (it doesn't happen in 3.1.24).
Running the following script (Python 3.8.6, Windows 10):
import git
repo = git.Repo.init('test_git')
with open('test_git/f.txt', 'w') as f:
f.write('aa')
with open('test_git/g.txt', 'w') as f:
f.write('bb')
repo.index.add('f.txt')
repo.index.add('g.txt') # < fails here
repo.index.commit('initial commit')
repo.close()
Produces:
(venv) PS C:\test> python .\test_git_close.py
Traceback (most recent call last):
File ".\test_git_close.py", line 9, in <module>
repo.index.add('g.txt')
File "venv\lib\site-packages\git\index\base.py", line 823, in add
self.write(ignore_extension_data=not write_extension_data)
File "venv\lib\site-packages\git\index\base.py", line 221, in write
lfd.commit()
File "venv\lib\site-packages\gitdb\util.py", line 359, in commit
self._end_writing(successful=True)
File "venv\lib\site-packages\gitdb\util.py", line 384, in _end_writing
remove(self._filepath)
File "venv\lib\site-packages\gitdb\util.py", line 83, in remove
return _retry(os.remove, *args, **kwargs)
File "venv\lib\site-packages\gitdb\util.py", line 77, in _retry
return func(*args, **kwargs)
PermissionError: [WinError 32] The process cannot access the file because it is being used by another process: 'test_git\\.git\\index'
Can be related to #1333