Jako poprzedni użytkownik Subversion, zdecydowaliśmy się przejść na Mercurial dla SCM i trochę nas to myli. Chociaż Mercurial jest rozproszonym narzędziem SCM, używamy zdalnego repo, aby zachować zmiany, które tworzymy z kopii zapasowej na serwerze, ale znajdujemy kilka problemów ząbkujących.Prawidłowa procedura (najlepsza praktyka?), Aby zachować synchronizację ze zdalnym repozytorium Mercurial?
Na przykład, gdy dwóch lub trzech z nas pracuje na naszych repo lokalnych, zobowiązujemy się następnie do zdalnego repo, okazuje się, że wiele głowic (?) Są tworzone. To myliło nas z piekłem i musieliśmy dokonać scalenia itp., Żeby to rozwiązać.
Jaki jest najlepszy sposób na uniknięcie tylu głowic i utrzymanie zdalnego repo w synchronizacji z wieloma programistami?
Obecnie pracuję tak:
- zmienić plik.
- Wyciągnij z zdalnego repo.
- Zaktualizuj lokalną kopię roboczą.
- Scalać? (dlaczego?)
- Zatwierdź zmiany w lokalnym repozytorium.
- Przekaż do zdalnego repozytorium.
Czy to najlepsze postępowanie?
Mimo że to zadziałało dobrze dzisiaj, nie mogę oprzeć się wrażeniu, że robię to źle! Szczerze mówiąc, nie rozumiem, dlaczego połączenie musi być wykonane na etapie ściągania, ponieważ inne osoby pracują nad różnymi plikami?
Czy możesz mi powiedzieć, że jeśli nie masz RTFM, masz jakieś wskazówki dotyczące używania Mercurial? Jakieś dobre zasoby online, aby dowiedzieć się, dlaczego mamy tak wielu głów?
UWAGA: Przeczytałem instrukcję obsługi, ale nie daje ona zbyt wiele szczegółów i nie sądzę, żebym chciał rozpocząć kolejną książkę z minuty na minutę.
Samouczek Joela Spolsky'ego na stronie http://hginit.com to świetne miejsce, aby dowiedzieć się, jak działa mercurial, i o ile pamiętam, zawiera dobre wyjaśnienie na temat wielu głów i bezbolesnego łączenia http://hginit.com/ 04.html –
Powinieneś mieć zatwierdzenie między krokami 1 i 2. commit w kroku 5 powinien być konieczny tylko wtedy, gdy musisz scalić pliki –