У меня есть git-репозиторий, в котором я сохраняю конфигурацию vim. Это дерево включает в себя несколько подмодулей git, которые ссылаются на репозитории других людей, которые содержат плагины.Почему git-поддерево предотвращает инициализацию встроенных подмодулей?
Поскольку я заинтересован в создании правильного репозитория dotfiles с утилью GNU, я подумал, что лучший способ интегрировать репозиторий vim - это просто поддеревовать его в реплику dotfiles. Поскольку моя конфигурация vim разветвляется у кого-то другого, я решил, что таким образом я могу легко объединиться в изменениях, внесенных вверх по течению, сохраняя при этом мои собственные плагины и конфиг.
Я успешно добавил поддерево в свое репо, используя git subtree add -P vim/.vim-files https:\\xx master --squash
. Полученное дерево выглядит следующим образом:
dotfiles/
├── .git
└── vim/
├── .vimrc
└── .vim-files/ <= THE SUBTREE
├── .gitmodules
└── plugins/
└── submodule1/
Когда я выполняю git submodule init
из dotfiles/
после этого, он терпит неудачу с fatal: No url found for submodule path 'vim/.vim-files/plugins/submodule1' in .gitmodules
. Несмотря на то, что URL-адрес существует, и репозиторий поддерева не имеет проблем с подмодулями при автономном использовании.
Незнакомая часть, когда я подключаюсь к .vim-files
и запускаю там команду, ошибка выглядит так: fatal: No url found for submodule path 'vim/.vim-files/vim/.vim-files/plugins/submodule1' in .gitmodules
.
Может ли кто-нибудь объяснить причину такого поведения? Являются ли поддеревья и подмодули несовместимыми или я наткнулся на ошибку?