2010-05-20 16 views

Odpowiedz

5

Tak i nie. Zależy od tego, co chcesz zrobić. Możesz utworzyć repo 'sandbox/wiki', ale pliki w tym wewnętrznym repo nie zostaną przypisane w zewnętrznym repozytorium 'sandbox' (@Jason ma rację). Jeśli nie chcesz, nie ma problemu.

Spróbuj wyraźnie dodać pliki z repozytoriów wiki w sandoksie, a otrzymasz poniższy komunikat. Jeśli po prostu dodasz ścieżkę do jakiegoś katalogu zawierającego wewnętrzne repo, pliki będą po prostu ignorowane.

Od sandox korzenia directoy:

hg add wiki/myfile 
    abort: path 'wiki/myfile' is inside repo 'wiki' 
7

Krótka odpowiedź brzmi: tak, ale nie mogę sobie wyobrazić, dlaczego miałbyś chcieć.

W przykładzie, myślę, że należy udać się z:

repos/sandbox-wiki 

[edytuj] Dodatkowo:

Yo Dowg, I herd you like repositories. 

So we put a repo in your repo so you can version while you version 

:-)

-1

trzeba by ustawić plik .hgignore w piaskownicy, aby wykluczyć wiki, ponieważ mercurial zakłada, że ​​jest odpowiedzialny za wszystkich potomków. Prawdopodobnie spowodowałoby to więcej zamieszania wśród użytkowników niż jest to warte.

+3

?! Mam wrażenie, że mercurial automatycznie ignoruje inne katalogi mercurial poniżej hierarchii root. (po zrobieniu tego) –

+1

Popraw to: ignoruje podwładnych. Jednak biorąc pod uwagę domyślne wyniki luminarza, nadal utrzymuję, że kupujesz sobie zamieszanie. – msw

1

Mercurial nie pozwala zagnieżdżone repozytoriów, ale istnieje przynajmniej jeden powód, dla nich:

Wyobraź sobie, że pracujesz w projekcie:/MyProject. W tym folderze umieszczasz wszystko: kod, dokumentację, testy itp.

Chcesz wykonać kopię zapasową swojej pracy, ponieważ jest ona bardzo ważna, więc tworzysz repozytorium dla/MyProject. Następnie, w godzinach nadliczbowych używasz pakietów, aby zapisać ewolucję/MyProject i tworzyć kopie zapasowe w pamięci flash USB, aby można było odzyskać wszystko na wypadek awarii dysku twardego.

Pamiętaj, że/MyProject zawiera wszystko. A wśród tych wszystkich rzeczy znajduje się główny kod i niektóre projekty pomocnicze. Również chcesz śledzić postęp projektu pomocniczego, który znajduje się w/MyProject/AuxiliaryProject, więc używasz Mercurial do śledzenia jego ewolucji.

Również, chcesz mieć osobne repozytorium głównego kodu:/myproject/Main

W tej sytuacji chcesz zagnieżdżone repozytoriów: jeden wielki jeden dla mogąc kopii zapasowych wszystko za pomocą wiązki i repozytoriów podrzędnych do zarządzania każdym podprojektem.

Myślę, że Mercurial powinien dać użytkownikowi kilka opcji podczas inicjowania repozytorium. Na przykład: - ignoruj ​​zagnieżdżone repozytoria - obejmują repozytoria zagnieżdżone, ale ignorują foldery .Hg (tzn. Działają tak, jakby nie było zagnieżdżonych repozytoriów, ale nie ignorują informacji zawartych w zagnieżdżonych repozytoriach). - zawierać zagnieżdżone repozytoriów a także foldery .Hg (sens dla celów zapasowych)

--------- Edycja: Subrepositories to funkcja, która jest w toku: https://www.mercurial-scm.org/wiki/subrepos

Istnieje również rozszerzenie o nazwie "las", które może stać się przestarzałe w przyszłości: https://www.mercurial-scm.org/ForestExtension