2011-05-31 20 views
25

W moim repozytorium dodałem kilka sub-repozytoriów dla modułów, których używam. Zawsze będę traktować te subrepos jako "tylko pociągnij". Nie planuję wprowadzać w nich żadnych zmian, ale chcę zachować możliwość łatwego pobierania nowych zmian po wydaniu nowej wersji.Jak mogę zapobiec podsycaniu podobiektów przez rtęć?

Po naciśnięciu głównego repozytorium Mercurial próbuje przekazać podkatalogi. Czy jest jakieś ustawienie, aby temu zapobiec?

+0

@Mercurial Czy Mercurial nie ma czegoś podobnego do pliku Git .gitignore? – Arlen

+0

Oczywiście, że tak, ale on mówi, że subrepos nie ignoruje pliku. Git ma taką samą treść subrepo, a podobnie nie będzie rozwiązany z .gitignore. –

+0

Nie chcę ignorować subrepos, po prostu nie chcę, aby były częścią nacisku, ponieważ one nigdy się nie zmienią. – Soviut

Odpowiedz

-1

Zależy od używanego klienta mercurial. Używam tortoisehg i odkryłem, że kliknięcie prawym przyciskiem myszy i wybranie plików w Tortoisehg >> forget to wszystko, czego potrzeba. Wybierz pliki i nie będziesz już musiał zawracać sobie głowy.

+1

Zastanawiasz się nad ignorowaniem plików, ale soviut pyta o nie wpychanie się w subrepos. –

7

Jest kilka rzeczy, które możesz zrobić, w zależności od tego, jakiego zachowania szukasz.

Czy faktycznie edytujesz i wykonujesz wewnątrz subrepo? Jeśli tak, powinieneś utworzyć oddzielne repozytorium typu repozytorium, w którym scalasz zmiany z wcześniejszymi ("ich") zmianami i masz punkt subrepo do tego. Coś takiego może:

repos 
    main 
    subrepo 
    .hgsub # contains: "subrepo=../theirproject" 
    theirproject # clone of remote, upstream repo 

Pomysł jest, że wejście subrepo nie wskazują bezpośrednio do repo rozkładaną tylko w górę, ale do jednego z własnych gdzie scalić zmiany z „ich”

Innym opcja polega na zaprzestaniu wprowadzania zmian w subrepo. Jeśli nie ma żadnych zmian i nie ma zatwierdzeń, naciśnięcie przełączy to repo do prawej. Jeśli przełączysz się na ten tryb pracy, możesz ustawić commitsubrepos = false w sekcji hgrc w celu uniknięcia przypadkowego popełnienia w tym repozytorium.

Najważniejsze jest to, że jeśli zmieniasz rzeczy tam, to musisz je zatwierdzić (dla bezpieczeństwa!), A jeśli je popełnisz, zostaną one popchnięte, jeśli rodzic zostanie popchnięty, więc po prostu kontroluj do miejsca, w którym są popychani i jesteś gotowy.

+2

Nie edytuję ani nie zmieniam sub-repo w żaden sposób. To jest ściśle tam jako biblioteka dla mnie odniesienia. Chcę, aby pozostały sub-repos, abym mógł pobierać aktualizacje, ale nie chcę, aby stale próbowały naciskać, kiedy nic się nigdy nie zmieni. – Soviut

+1

Jeśli nic nie zmieniłeś w podobieństwach, Mercurial nie będzie próbował ich naciskać. Lub raczej nie wykryje żadnych zmian, a push natychmiast się zakończy. Jeśli przejdziesz do tego repozytu, a 'hg outgoing' wyświetli jakąś treść, zmienisz (i popełniłeś) coś. Czy możesz zaktualizować swoje pytanie konkretnym wynikiem, który widzisz, gdy wykonujesz 'push hg' w repozytorium macierzystym? –

+1

Po prostu naciśnij spację dla rodziców. Miałem nadzieję, że zasadniczo po prostu zapobiegnę sprawdzeniu subrepo, ponieważ wydaje się wolniejsze niż normalne pchnięcie. – Soviut

Powiązane problemy