repo sync error: cannot initialize work tree
2781 ワード
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 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 ...