Rozwiązywanie konfliktów

Podczas aktualizacji lub zatwierdzania może dojść do wystąpienia konfliktów. Konflikt ma miejsce, gdy zmodyfikowano zasób lokalny, którego nowsza podwersja znajduje się w rozgałęzieniu w repozytorium. Innymi słowy, rozgałęzienie zawiera podwersję nowszą niż podstawowa podwersja zasobu. W takiej sytuacji można wykonać jedną z następujących czynności:

Najczęściej wybierana jest trzecia opcja, czyli scalanie, ponieważ z pozostałymi dwoma opcjami związana jest utrata wykonanej pracy.

Ręczne scalanie zmian

W widoku synchronizacji wyświetlane są zasoby powodujące konflikt z rozgałęzieniem. Zwykle wykonywane jest scalenie zmian użytkownika w zasobie powodującym konflikt ze zmianami w zasobie rozgałęzienia.

Przykładowo dwóch członków zespołu zmodyfikowało tę samą stronę HTML. Otwarcie tego zasobu w widoku synchronizacji spowoduje wyświetlenie porównania zasobu lokalnego z podwersją w rozgałęzieniu. Przeglądając i scalając pojedyncze zmiany, można określić dla każdej zmiany przychodzącej, czy należy ją zaakceptować, odrzucić lub scalić ze zmianami lokalnymi. Po zakończeniu scalania można zapisać zmiany. Spowoduje to nadpisanie zasobu lokalnego wynikiem scalania. Następnie scalony zasób można zatwierdzić.

Wskazówka: Podczas scalania zmian bardzo przydatna jest możliwość odróżniania plików, które już zostały scalone. Po zakończeniu scalania pliku można wybrać z menu kontekstowego polecenie Oznacz jako scalone. Spowoduje to zmianę statusu pliku powodującego konflikt i oznaczenie go jako zmiana wychodząca.

W widoku synchronizacji można scalać różnice na dwóch poziomach:

Automatyczne scalanie zmian

Zmiany mogą być także scalane automatycznie. W przypadku zasobów oznaczonych jako ASCII wybranie opcji Zespół > Aktualizuj spowoduje automatyczne scalenie w zasobie lokalnym różnic z zasobem w rozgałęzieniu. Mechanizm ten działa poprawnie pod warunkiem, że w obu zasobach nie ma wierszy ze zmianami powodującymi konflikty. W przeciwnym razie system CVS wstawia do pliku specjalne znaczniki wskazujące wiersze, których nie można było scalić.

Aktualizowanie z poziomu widoku synchronizacji działa nieco inaczej. W przypadku wystąpienia konfliktu opcja Aktualizuj spowoduje przetworzenie tylko tych plików, których treść nie zawiera konfliktów. Pliki zawierające konflikty zostaną pominięte i pozostawione w widoku synchronizacji jako konflikty.

 Pojęcia pokrewne
Programowanie zespołowe za pomocą systemu CVS
Synchronizowanie z repozytorium CVS
Porównania trójkierunkowe

Czynności pokrewne
Synchronizowanie z repozytorium
Aktualizowanie
Zatwierdzanie
Scalanie rozgałęzienia
Porównywanie zasobów
Scalanie zmian w edytorze porównawczym

Informacje pokrewne
www.cvshome.org: Aktualizowanie pliku
www.cvshome.org: Przykład konfliktów
Edytor porównawczy