Praca ze zmianami powodującymi konflikty
Zdarzają się przypadki, kiedy dwóch użytkowników edytuje te same pliki,
a gdy jeden z nich próbuje zatwierdzić zmiany do repozytorium, operacja
kończy się niepowodzeniem ze względu na konflikt. Aby dokonać symulacji takiego
przypadku, Robert i Jan dokonają zmian w tych samych plikach.
- W obszarze roboczym Roberta otwórz jeden z widoków nawigacyjnych i dokonaj edycji pliku plik1.txt. Zmień
tekst w następujący sposób:
Wiersz Roberta 1
To jest treść
aktualizacja Roberta
pliku 1.
- Robert modyfikuje także plik
plik2.txt, wprowadzając następujące zmiany:
plik2 to (Robert był tu znowu)
mały plik
z prostym tekstem.
- Robert zatwierdza swoje zmiany do repozytorium.
- W tym samym czasie Jan dokonał zmian w pliku plik1.txt. Na końcu tego
pliku został dodany następujący wiersz:
To jest treść
aktualizacja Roberta
pliku 1.
Jan pojawia się na końcu
- Jan zmodyfikował również plik plik2.txt, wprowadzając następujące zmiany:
plik2 to (Jan był tutaj) mały
plik
z prostym tekstem.
- Po zakończeniu wprowadzania zmian Jan zsynchronizował projekt, co spowodowało
wyświetlenie następującego ekranu w widoku Synchronizacja:
- Pliki plik1.txt i plik2.txt są oznaczone czerwoną ikoną, która wskazuje istnienie zmian
powodujących konflikty. Zatwierdzenie plików nie będzie możliwe aż do momentu rozwiązania
tych konfliktów. Kliknij plik plik1.txt i zwróć uwagę, że Robert i Jan dokonali zmian
w dwóch różnych częściach tego pliku. W takim przypadku Jan może po prostu zaktualizować
plik, a wiersze dodane przez Roberta zostaną scalone z lokalnym plikiem Jana. Zaznacz
plik plik1.txt i z menu kontekstowego wybierz opcję Aktualizuj.
- Następnie kliknij dwukrotnie plik plik2.txt, aby sprawdzić konflikt. W tym przypadku
okazuje się, że Jan i Robert zmodyfikowali ten sam wiersz. Rozwiązanie takiego konfliktu
nie jest możliwe przy użyciu normalnej operacji aktualizacji. Dostępne są trzy opcje (odpowiednie
komendy zostały przedstawione w nawiasach): zaakceptowanie zmian Roberta (Zastąp
i aktualizuj), zignorowanie zmian Roberta (Oznacz jako
scalone) lub ręczne scalenie plików w edytorze porównawczym.
- Do celów tego przykładu załóżmy, że Jan zaktualizował plik plik1.txt oraz wykonał
zastępowanie i scalanie pliku plik2.txt. Po wykonaniu odpowiednich operacji konflikty
zostaną przekształcone w zmiany wychodzące. Jan może przejrzeć te zmiany i zatwierdzić je.