Мне нужно получить исходные коды для всех файлов в коммите.В настоящее время я использую Pydriller, и он работает хорошо.Но из соображений производительности мне нужно использовать GitPython.Я пробовал это решение:
repo = Repo('path to repo') )
commit = repo.commit('my hash')
with io.BytesIO(target_file.data_stream.read()) as f:
print(f.read().decode('utf-8'))
Но я получаю эту ошибку:
Traceback (most recent call last):
File "D:\Programmi\Python36\lib\threading.py", line 916, in _bootstrap_inner
self.run()
File "D:\Programmi\Python36\lib\threading.py", line 864, in run
self._target(*self._args, **self._kwargs)
File "D:/Workspaces/PythonProjects/fixing-
commit/crop_data_preparing_gitpython.py", line 82, in
get_commit_data_gitpython
print(f.read().decode('utf-8'))
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x9f in position 18: invalid start byte
Я думал, что это может быть проблема с кодировкой, но даже смена кодировки с utf-8to latin-1 не помогает.
Существует ли другая стратегия, которая помогла бы мне получить код для этих файлов, используя GitPython?