Jak zmienić nazwę repozytorium git (projektu), który zawiera submoduły w swoich podkatalogach

Nigdy nie spodziewam się, że zmiana nazwy repozytorium git, a dokładniej, że folder najwyższego poziomu zawiera projekt, byłaby tak trudna. Tak, projekt zawierający kilka submodułów, ale jest tofolder najwyższego poziomu który wymaga zmiany nazwy, a niefolder podmodułu. Wygląda na to, że Git nagrywa jakieś dziwne rzeczyabsolutne ścieżki w jego mechanizmach submodułowych.

Załóżmy, że tak

Wszystkie twoje projekty znajdują się w/tmp.Maszproj_master iproj_mod.Klonujeszporj_master tak jakproj_ALL następnie klonujprom_mod jako submoduł w nim.Zmieniasz nazwęproj_ALL doproj_onebillion. Potem dzieje się czarna magia.

Następujące kroki pozwolą odtworzyć wspomniany problem. Wersja gita, której używam to:

$ git --version
git version 1.7.9.5

Inicjalizujproj_master.

$ cd /tmp
$ mkdir proj_master; cd proj_master
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_master"

Inicjalizujproj_mod.

$ cd /tmp
$ mkdir proj_mod; cd proj_mod
$ git init .
$ touch README
$ git add .; git commit -m "hello proj_mod"

Klonproj_master tak jakproj_ALL i klonujproj_mod jako submoduł.

$ cd /tmp
$ git clone proj_master proj_ALL
$ cd proj_ALL
$ git submodule add /tmp/proj_mod ./mod
$ git add .; git commit -m "hello proj_ALL"
$ git status   % Everything is OK.

Przemianowaćproj_ALL doproj_onebillion. Spotkaj się z błędem krytycznym.

$ cd /tmp
$ mv proj_ALL proj_onebillion
$ cd proj_onebillion
$ git status
fatal: Not a git repository: /tmp/proj_ALL/.git/modules/mod

Jedna rzecz, którą należy zauważyć, to.git plik w katalogu podmodułu.

$ cat /tmp/proj_ALL/mod/.git 
gitdir: /tmp/proj_ALL/.git/modules/mod

Tak, absolutna ścieżka. Po raz pierwszy zdaję sobie sprawę, że git jest świadomy czegoś poza zakresem najwyższego poziomu folderu repo.

to jest to! Powtarzam to jeszcze raz, że zmieniam nazwę folderu projektu najwyższego poziomu, a nie folderu podmodułów. sprawdzampytanie schmucka, który próbował zmienić nazwę folderu podmodułu, nie wydaje się więc tak pomocny w moim problemie.

Jeśli przegapię coś, co powinno zostać przeczytane wcześniej, przepraszam. Wszystkim facetom wszelkie rady są mile widziane.