Jest to nieco związane z tym pytaniem, ale jest innym pytaniem.
Mamy centralne repozytorium Hg, podawane użytkownikom za pośrednictwem SSH i serwera mercurial . Łączymy się z nim kilkoma klientami Mac, Linux i Windows.
Dwukrotnie zdarzyło się teraz, gdy jeden z użytkowników systemu Windows uszkodził swoje repozytorium, a następnie zepchnął z powrotem do centralnego, który je uszkodził. Chcę napisać przychodzący skrypt przechwytujący w centralnym repozytorium, aby zapobiec akceptacji transakcji, jeśli spowoduje ona uszkodzenie centralnego repozytorium.
Chociaż niestety nie wiem wystarczająco dużo o Mercurial, aby napisać taki skrypt. Czy jest jakaś możliwość, że spotkał się z tym ktoś inny? Osobiście nie jestem pewien, dlaczego hg domyślnie tego nie robi.
źródło
Odpowiedzi:
Najnowsze wersje Mercurial (od 1.5) obsługują sprawdzanie poprawności danych przychodzących. Dodaj
do konfiguracji hg serwera (albo
.hg/hgrc
konfiguracja hgwebdir powinna działać poprawnie), aby serwer mógł zweryfikować przychodzące dane i odrzucić nieprawidłowe wypychania. Klient zobaczy wtedy błąd podobny do:Mam nadzieję, że to pomaga!
źródło
Może powinieneś całkowicie unikać pchania do repozytorium. Dzięki Mercurial i jego rozproszonej naturze każdy może mieć swoją gałąź, a kiedy czuje, że jest gotowy, mówi ci, a ty od niego odsuwasz. Brak problemów z dostępem do zatwierdzenia, brak wypychania, które mogłoby popsuć ...
To przynajmniej rada, której udzielił mi mój przyjaciel, kiedy migrowałem z SVN do Mercurial.
Nie wiem, czy jest to dla ciebie opcja, ale utworzenie osobistego repozytorium dla wszystkich, a następnie wyciągnięcie ludzi, których potrzebujesz, może wymagać mniej pracy niż próba złapania niebezpiecznych popychaczy.
źródło
Czy nie mógłbyś zrobić tego samego, co blog Davida Herrona , ale zamiast robić to w trakcie przygotowywania trasy, zrób to na specjalnym haczyku na centralnym repozytorium?
źródło
Jedną z możliwych alternatyw jest:
To rozwiązanie nie jest tym, czego potrzebujesz, ale przynajmniej masz sposób na wycofanie repozytorium w przypadku uszkodzenia.
źródło