2008-10-20 15 views
62

Rozważamy przejście od SVN do Mercurial i natknęliśmy się na przeszkodę.Czy mogę emulować svn: externals using mercurial?

Obecnie używamy svn:externals, aby automatycznie pobrać wspólny zestaw bibliotek do katalogu roboczego. Nie mogę znaleźć wsparcia dla czegoś takiego w Mercurial.

Czy istnieje sposób, aby zrobić to automatycznie z Mercurial, czy też muszę go sfałszować jako część mojego procesu kompilacji?

+0

To pytanie najlepiej wykorzystać rozszerzenie hg. Spytałem go, całkiem konkretnie, o rozwiązanie tego problemu svn: externals. [Jakie są najlepsze i niezbędne rozszerzenia hg/mercurial?] (Http://stackoverflow.com/questions/1869040/what-are-the-best-and-must-have-hg-mercurial-extensions) –

Odpowiedz

20

Nie można tego zrobić za pomocą samego środka rtęci. Rozszerzenie lasu wspomniane w innym miejscu powoduje więcej problemów niż obecnie. Większość ludzi po prostu używa dużego repozytorium i włącza wszystkie swoje komponenty do repozytorium, a następnie pobiera skrypty do ich budowania i używa bibliotek zewnętrznych - używając programu maven, jeśli jest on szefem Java.

Krótka odpowiedź "podrób to w procesie tworzenia".

Update:

W Mercurial 1,3 nowością sub Repos dodano. to jak stare rozszerzenie lasu, ale zaczęło się jak cały nowy kod.

Subrepos są uważane za "cechę ostatniej instancji".

+0

Witam. Nie jestem pewien "Większość ludzi po prostu używa dużego repozytorium i zawiera wszystkie jego składniki w repozytorium". Jak to działa? Zakładając, że masz projekt1 i projekt2, które wykorzystują komponent1 i komponent2, w jaki sposób "wypisujesz" projekt1 w pojedynczym kliknięciu przy użyciu Mercurial? –

+0

Umieść wszystkie project1, project2, component1 i component2 w jednym repozytorium i sprawdź je wszystkie na raz. To powiedziawszy, edytuję swoją odpowiedź, aby pokazać nową funkcję NestedRepositories w wersji 1.3. –

+1

Funkcja zagnieżdżonych repozytoriów jest dodatkowo ulepszona w wersji 1.5. Wierzę, że –

0

Wypróbuj Mercurial's Forest Extension.

+5

Uwaga przedłużenia lasu. To nie jest aktualne i działa tylko ze starszymi wersjami Mercurial. Wypadł on z łaski u większości ludzi Mercurial, więc nie widzę, by ciągnęło to w przyszłości. –

3

Czy próbowałeś już Deps Extension?

To nie jest część Mercurial, ale wydaje się naśladować svn:externals funkcji może

26

Wydaje się, że funkcjonalność Forest Extension jest realizowany w podstawowej Mercurial (od 1.3):

https://www.mercurial-scm.org/wiki/Subrepository.

Obecnie oznaczona jako "eksperymentalna", ale być może będzie to trasa do obsługi funkcji svn: external -typ od wersji 1.4.