2009-09-27 13 views
5

Mam projekt, który łączy wiele repozytoriów hg (różne komponenty) w celu utworzenia pojedynczej aplikacji. Szukam narzędzia wieloplatformowego do obsługi wykonywania operacji na wielu reposach w tym samym czasie (np. Tag, pull, push, commit itp.). Zasadniczo szukam skryptu "repo", który Google napisał dla Androida, ale dla Hg zamiast git:Czy ktoś ma skrypt do obsługi wielu repozytoriów hg naraz?

http://source.android.com/download/using-repo

Szukałem na przepełnienie stosu i stwierdziliśmy:

mercurial windows batch file for pulling changes to multiple repositories

ale to wciąż nieco ręczny i tylko okna. Wiem, że trudno jest napisać skrypt, aby przekazać komendę repo lub spróbować zamknąć wszystko, ale pomyślałem, że może to być typowa rzecz, więc może inni już mają rozwiązanie. Przypuszczam, że jednym ze sposobów byłoby przeniesienie skryptu repo do hg (znalezienie i zastąpienie gita z hg prawdopodobnie zaowocuje prostymi operacjami).

Co robią inni ludzie w tej sytuacji?

Odpowiedz

5

Zdecydowanie spójrz na nową podrepodentię (w wersji 1.3) w Mercurial. Pozwala na posiadanie nadrzędnego repozytorium zawierającego inne repozytoria. Stan najwyższego poziomu obejmuje plik, który określa wartość mieszającą końcówki sub-repos, dzięki czemu można skutecznie określić pojedynczy identyfikator węzła mieszającego, który obejmuje stan wszystkich repozytoriów podrzędnych.

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

+0

Dzięki, zdecydowanie będę miał na to oko . Nie sądzę, że będę w stanie zrestrukturyzować nasze repozyty, aby jeszcze bardziej korzystać z "eksperymentalnej" funkcji, więc prawdopodobnie zainwestuję 10 minut w zhakowanie szybkiego skryptu. – Brian

+0

FWIW, subrepos są obecnie bardzo standardowym użytkowaniem. –

1

Byłem w podobnej sytuacji w ubiegłym roku, pracując codziennie z rozprzestrzenianiem projektu ponad 6 repozytoriów, a będąc odpowiedzialny za większość rozgałęzień/łączenie rzeczy itp

W pewnym momencie znalazłem prosty skrypt bash do sprawdzania wielokrotnych repozytoriów SVN. Dostosowuję go do Mercurial i przedłużyłem go z biegiem czasu. W tej chwili nie mogę sobie przypomnieć ani google oryginalnego źródła skryptu, więc niestety nie mogę przyznać autorowi oryginalnego (zapisze w moim skrypcie, jeśli znajdę informacje później).

Mój „hgall” skrypt został opublikowany na GitHub na https://github.com/JKrag/hgall

Wykonana jest na własny użytek, a więc bezpośrednio odwołuje kilka rozszerzeń, które używam, ale może to było łatwo edytować zewnątrz. (lub po prostu nie używaj poleceń, które wywołują rozszerzenia, których nie zainstalowałeś).

Skrypt jest udokumentowany w pliku README, w tym moim osobistym "ulepszeniem" posiadania go (domyślnie) ignorowania repo, które zaczyna się od podkreślenia, ponieważ używam ich jako tymczasowych klonów do testowania niechlujnych operacji (na przykład dużych scaleń).

Mam nadzieję, że ten skrypt przyda się niektórym z was - w ubiegłym roku bardzo mi pomógł. Nasza firma właśnie przeniosła się do Git, więc prawdopodobnie nie będę dokonywał wielu aktualizacji w najbliższej przyszłości, ale być może przeniesie go do Git pewnego dnia ...

Powiązane problemy