Git правильно переместить каталог с подмодулями, имеющими подмодули - PullRequest
0 голосов
/ 08 января 2019

У меня есть следующее дерево каталогов, хранящееся в git-репозитории с подмодулями:

project_src
   └── src
       └── aiscom             <- submodule of project_src
          ├── libaisparser    <- submodule of aiscom
          └── reliablesocket  <- submodule of aiscom

Из-за некоторой реорганизации в иерархии исходного кода нашего проекта я хочу переместить всю папку src в папка gui вместе со всеми указанными субмодулями, например:

 project_src
   └──gui
      └── src
          └── aiscom              <- submodule of project_src
              ├── libaisparser    <- submodule of aiscom
              └── reliablesocket  <- submodule of aiscom

Согласно Как переместить существующий подмодуль Git в репозиторий Git? и Как переместить существующий подмодуль Git в репозиторий Git? Я сделал:

git mv src gui

Теперь мерзавец жалуется:

$ git status                                                                                                           

  fatal: not a git repository: libaisparser/../../../.git/modules/src/aiscom/modules/libaisparser
  fatal: 'git status --porcelain=2' failed in submodule gui/src/aiscom

Я пытался:

$ git submodule foreach --recursive 'git submodule sync'                                                                                                           [±enh-43/source-tree-refactoring ✓]

  Entering 'gui/src/aiscom'
  Synchronizing submodule url for 'libaisparser'
  fatal: not a git repository: libaisparser/../../../.git/modules/src/aiscom/modules/libaisparser
  Stopping at 'gui/src/aiscom'; script returned non-zero status.

Кто-нибудь знает, как переместить каталог с git, содержащий подмодуль, который содержит другой подмодуль?

...