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.

  1. 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.

  2. 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.

  3. Robert zatwierdza swoje zmiany do repozytorium.

  4. 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

  5. Jan zmodyfikował również plik plik2.txt, wprowadzając następujące zmiany:

    plik2 to (Jan był tutaj) mały plik
    z prostym tekstem.

  6. Po zakończeniu wprowadzania zmian Jan zsynchronizował projekt, co spowodowało wyświetlenie następującego ekranu w widoku Synchronizacja:



  7. 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.

  8. 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.



  9. 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.