Я пытаюсь использовать repo
для загрузки исходного кода Android, как указаноИнструкции Google. Я загрузил и инициализировал клиент Repo и теперь пытаюсь обновить рабочее дерево. После запуска repo sync --force-broken
все проекты, по-видимому, извлекаются правильно, как показывает вывод консоли. Fetching projects: 100% (733/733), done.
Однако сразу после печати этого сообщения Repo, по-видимому, не может синхронизировать рабочее дерево, показывая следующую ошибку:
Syncing work tree: 0% (2/733) (NOTE: newline inserted here for readability)
error: unable to create file pathtools/testdata/escapes/*: Invalid argument
fatal: cannot create directory at 'pathtools/testdata/escapes/**': Invalid argument
Traceback (most recent call last):
File "D:\2019 Work\androidsrc\.repo\repo/main.py", line 547, in <module>
_Main(sys.argv[1:])
File "D:\2019 Work\androidsrc\.repo\repo/main.py", line 522, in _Main
result = repo._Run(argv) or 0
File "D:\2019 Work\androidsrc\.repo\repo/main.py", line 184, in _Run
result = cmd.Execute(copts, cargs)
File "D:\2019 Work\androidsrc\.repo\repo\subcmds\sync.py", line 855, in Execute
project.Sync_LocalHalf(syncbuf, force_sync=opt.force_sync)
File "D:\2019 Work\androidsrc\.repo\repo\project.py", line 1380, in Sync_LocalHalf
self._InitWorkTree(force_sync=force_sync, submodules=submodules)
File "D:\2019 Work\androidsrc\.repo\repo\project.py", line 2594, in _InitWorkTree
raise GitError("cannot initialize work tree for " + self.name)
error.GitError: cannot initialize work tree for platform/build/blueprint
repo --version
урожайность:
repo version v1.13.3
(from https://gerrit.googlesource.com/git-repo)
repo launcher version 1.25
(from C:\Program Files\Git\usr\bin\repo)
git version 2.22.0.windows.1
Python 2.7.16 (v2.7.16:413a49145e, Mar 4 2019, 01:37:19) [MSC v.1500 64 bit (AMD64)]
решение1
Перейдите в <build-root> (т.е. в каталог, где расположены bionic/, development/, device/ и т.д.) и попробуйте:
repo sync --force-sync build/blueprint
Если вы столкнулись с одинаковыми проблемами в нескольких каталогах, попробуйте:
for subprj in $(repo status | grep ^project | cut -d ' ' -f2);
do
repo sync --force-sync $subprj;
done