2012-02-27 10 views
7

Ostatnio w git 1.7.8, zmiana została wprowadzona do "obsługi" submodules inaczej niż wcześniej - https://lkml.org/lkml/2011/12/2/316Przywróć pre-git git zachowanie v1.7.8 z modułem lokalizacji systemu plików modułem

Podczas wypełniania nowego submodule katalog z "git submodule init", Katalog metainformacji $ GIT_DIR dla submodułów jest tworzony wewnątrz katalogu $ GIT_DIR/modules // katalogu superproject i oznaczony poprzez mechanizm gitfile. Ma to umożliwić przełączanie między zatwierdzeniami w superprojektie, który ma i nie ma modułu submodułu w drzewie bez ponownego klonowania.

Więc teraz, zamiast klonowania submodule do określonego katalogu, zamiast tego .git plik jest tworzona i w nim jest taka:

$ cat .git 
gitdir: ../../../../.git/modules/app/src/emberlabs/openflame 

Mój problem: Jestem na git 1.7 .9 i potrzebuję, aby pliki sklonowanego submodułu znajdowały się w moim lokalnym klonie dokładnie tam, gdzie ich spodziewam się, zamiast gdzie git nakazuje, że powinny być - tak jak było przed git 1.7.8, gdzie mógłbym ls kod modułu podległego i znajdź wszystkie pliki sklonowanego zatwierdzenia.

Wszelkie sugestie i pomysły dotyczące ... cóż, ponownie -przyjąć to?

Odpowiedz

8

Znaleziono rozwiązanie tego problemu.

Edycja pliku {$project_root}/.git/modules/{$submodule_path}/.git/config i usuwanie linii worktree pod [core] i kopiowanie w całym katalogu .git od {$project_root}/.git/modules/{$submodule_path}/ do modułem w aktualnej lokalizacji (po usunięciu .gitplik gdzie modułem było), a następnie uruchomiony git checkout -f {$branch} wydaje aby odzyskać wszystkie pliki. Nie do końca jednak pewne, czy jest to pełne rozwiązanie.

+0

Czy kiedykolwiek znalazłeś łatwiejsze rozwiązanie? Występuje ten sam problem i używam najnowszej wersji GIT. Powinienem móc łatwo klonować jak dawniej nie mając kłopotów z tymi wszystkimi bzdurami. Chcę, aby moje podmoduły były kopiowane jako repozytorium, które można zmienić i pchnąć. – swt83

+0

edycja: podobno nie, usuwam mój komentarz – njzk2

+0

Musiałem to zrobić, aby Gitbox mógł poprawnie śledzić mój moduł. Działa doskonale. – phatmann

Powiązane problemy