2017-02-13 9 views
0

Я пытаюсь построить версию 5.9 из Qt5 из источников GIT, но обновление подмодулей не удается:Qt: INIT-хранилище прерывается с «роковым: Необходим один пересмотром»

git clone https://github.com/qt/qt5.git 
cd qt5 
git checkout 5.9 
./init-repository 
... 
... lots of submodules being updated successfully 
... 

fatal: Needed a single revision 
Unable to find current revision in submodule path 'qtnetworkauth' 
git submodule update --force --no-fetch exited with status 256 at ./init-repository line 198. 
    Qt::InitRepository::exe(Qt::InitRepository=HASH(0x1fa94b0), "git", "submodule", "update", "--force", "--no-fetch") called at ./init-repository line 429 
    Qt::InitRepository::git_clone_all_submodules(Qt::InitRepository=HASH(0x1fa94b0), "qt/qt5", 0, "preview", "essential", "addon", "deprecated") called at ./init-repository line 644 
    Qt::InitRepository::run(Qt::InitRepository=HASH(0x1fa94b0)) called at ./init-repository line 655 

Так выглядит qtnetworkauth является как-то неправильно настроенный, но я не знаю, как его решить. Я попытался удалить модуль qtnetworkauth, удалив ссылки внутри .gitmodules, qtdoc, и сама папка, а затем другие модули выходят из строя.

странно - когда я бегу ./init-repository -f после удаления и добавления ссылок на qtnetworkauth я могу увидеть, что проверяется, но папка Подмодули еще пуста:

... 
+ git clone --no-checkout https://github.com/qt/qtnetworkauth qtnetworkauth 
Cloning into 'qtnetworkauth'... 
remote: Counting objects: 283, done. 
remote: Compressing objects: 100% (14/14), done. 
remote: Total 283 (delta 3), reused 0 (delta 0), pack-reused 269 
Receiving objects: 100% (283/283), 200.12 KiB | 0 bytes/s, done. 
Resolving deltas: 100% (139/139), done. 
Checking connectivity... done. 
+ git config commit.template /home/frans/_HOME/0000_android_dev/qt5/.commit-template 
+ git config remote.gerrit.url ssh://codereview.qt-project.org/qt/qtnetworkauth 
... 

Что я сделал не так? Или, если это ошибка Qt - как я могу ее обойти?

ответ

1

Вы меняете ветви до фактического получения всех репозиториев. Вероятно, это что-то сломало в сценарии ./init-repository.

Я проверил, что эта последовательность работ:

git clone git://code.qt.io/qt/qt5.git 
cd qt5/ 
./init-repository 
git checkout 5.9 
git submodule update 
+1

Ну это смешно, - хотя изменяя порядок моих команд не было эффекта вы все равно помогли мне. Проблема, похоже, в том, что клон github я использовал. Клонирование из 'code.qt.io' решает мою проблему, хотя оба клона идентичны (кроме пультов). Измените свой ответ, и я приму его. – frans