repo sync error: cannot initialize work tree


repo syncの他の操作でコンピュータがハングアップし、再起動後にrepoを続行すると、次のエラーが発生します.
$ repo sync -cdf Syncing work tree:  67% (344/512)  fatal: This operation must be run in a work tree Traceback (most recent call last):   File "/home/panos/android/cm13/.repo/repo/main.py", line 531, in     _Main(sys.argv[1:])   File "/home/panos/android/cm13/.repo/repo/main.py", line 507, in _Main     result = repo._Run(argv) or 0   File "/home/panos/android/cm13/.repo/repo/main.py", line 180, in _Run     result = cmd.Execute(copts, cargs)   File "/home/panos/android/cm13/.repo/repo/subcmds/sync.py", line 769, in Execute     project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)   File "/home/panos/android/cm13/.repo/repo/project.py", line 1247, in Sync_LocalHalf     self._InitWorkTree(force_sync=force_sync)   File "/home/panos/android/cm13/.repo/repo/project.py", line 2393, in _InitWorkTree     raise GitError("cannot initialize work tree") error.GitError: cannot initialize work tree
これは、あるporjectにrepo syncが初めて届いたとき、シャットダウンによりこのプロジェクトの内容にエラーが発生したためです.
解決方法:
1まずrepo--trace sync-cdfでrepoのすべての動作を詳細に出力し、
ここでエラーが発生したことがわかります.
: export GIT_DIR=......./vendor/mediatek/proprietary/hardware/gsm0710muxd : git rev-parse --verify refs/remotes/github/cm-13.0-caf-8996^0 1>| 2>| : cd ......../vendor/mediatek/proprietary/hardware/gsm0710muxd : git read-tree --reset -u -v HEAD 1>| 2>| fatal: This operation must be run in a work tree Traceback (most recent call last):   File "/home/panos/android/cm13/.repo/repo/main.py", line 531, in     _Main(sys.argv[1:])   File "/home/panos/android/cm13/.repo/repo/main.py", line 507, in _Main     result = repo._Run(argv) or 0   File "/home/panos/android/cm13/.repo/repo/main.py", line 180, in _Run     result = cmd.Execute(copts, cargs)   File "/home/panos/android/cm13/.repo/repo/subcmds/sync.py", line 769, in Execute     project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)   File "/home/panos/android/cm13/.repo/repo/project.py", line 1247, in Sync_LocalHalf     self._InitWorkTree(force_sync=force_sync)   File "/home/panos/android/cm13/.repo/repo/project.py", line 2393, in _InitWorkTree     raise GitError("cannot initialize work tree") error.GitError: cannot initialize work tree
2したがってvendor/mediatek/proprietary/hardware/gsm 0710 muxdというフォルダを削除し、manifestでこのパスに対応するprojectを検索すると
 
そこでrepo/projectsで削除します.repo/projects/vendor/mediatek/proprietary/hardware/gsm0710muxd.gitディレクトリ、および
.repo/project-objects/vendor/mediatek/proprietary/hardware/gsm0710muxd.gitディレクトリ
3最後に再びrepo syncすればよい
repoのtraceオプションの役割
You can trace what really happens with  repo --trace init ...