Rozwiązywanie konfliktów Kontrola wersji serwera Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

Zaletą korzystania z Kontrola wersji serwera Team Foundation (TFVC) do zarządzania plikami jest to, że kilka osób może pracować współbieżnie w pliku. Jedną z wad jest to, że czasami należy rozwiązać konflikty, zanim będzie można uzyskać, zaewidencjonować, usunąć, scalić lub wycofać pliki.

Chociaż może to być frustrujące, aby napotkać konflikty, system udostępnia informacje i narzędzia ułatwiające zrozumienie i rozwiązywanie konfliktów.

Konflikty z wiersza polecenia można również rozwiązać przy użyciu polecenia Rozwiąż.

Napiwek

Jeśli twój zespół musi współpracować w celu rozwiązania dużej liczby konfliktów, na przykład po operacji scalania w dużej bazie kodu, publiczny obszar roboczy na udostępnionej maszynie deweloperów może pomóc. Aby uzyskać więcej informacji, zobacz Tworzenie i praca z obszarami roboczymi.

Rozwiązywanie konfliktów

Aby rozwiązać konflikty, możesz użyć okna Rozwiązywanie konfliktów programu Visual Studio, aby rozwiązać konflikty, które cię blokują. Aby otworzyć okno, wybierz pozycję Akcje>Rozwiąż konflikty na stronie Oczekujące zmiany w programie Team Explorer.

Zrzut ekranu przedstawiający użycie okna Rozwiązywanie konfliktów w celu rozwiązania konfliktów.

Domyślnie w oknie są wyświetlane tylko konflikty spowodowane przez ostatnią próbę operacji. Gdy okno jest w tym stanie, zostanie wyświetlony komunikat rozpoczynający się: Zastosowany filtr ścieżki. Aby wyświetlić wszystkie konflikty w obszarze roboczym, wybierz pozycję Pobierz wszystkie konflikty. Zostanie wyświetlony komunikat rozpoczynający się od: <N> Konflikty .

Jeśli wiele czasu minęło od czasu wprowadzenia zmian w plikach w obszarze roboczym, mogły wystąpić nowe konflikty. Aby odświeżyć okno Rozwiązywanie konfliktów , wybierz pozycję Odśwież.

Zrzut ekranu przedstawiający okno Rozwiązywanie konfliktów.

Każdy konflikt zawiera informacje, a czasami linki, które mogą pomóc w jego rozwiązaniu. Aby uzyskać więcej informacji, możesz wybrać konflikt i wybrać jedną z następujących opcji:

  • Ikona historii.Historia , aby wyświetlić historię pliku. Jeśli operacja, która spowodowała konflikt, to scalanie lub wycofywanie, możesz wybrać kontrolkę menu z prawej strony pozycji Historia , a następnie wybrać pozycję Historia źródła lub Historia docelowa. Aby uzyskać więcej informacji, zobacz Pobieranie historii elementu.

  • Ikona porównaj.Porównaj lub wybierz strzałkę listy rozwijanej obok ikony, a następnie wybierz polecenie. Zostanie otwarte okno Różnice.

  • Ikona dodawania adnotacji.Dodaj adnotacje , aby wyświetlić szczegóły dotyczące wszystkich zmian wprowadzonych w najnowszej wersji pliku, w tym osób, które dokonały każdej zmiany i kiedy je wprowadzili. Zobacz Wyświetlanie zmian plików przy użyciu adnotacji.

AutoOdwiązanie wszystkich konfliktów

Domyślnie system automatycznie podejmuje próbę autowywiązania wszystkich konfliktów, chyba że wyłączysz tę opcję. Aby wyłączyć automatyczne autoodłatywanie wszystkie, wybierz pozycję Narzędzia>Opcje. W oknie dialogowym Opcje w obszarze Kontrola>źródła programu Visual Studio Team Foundation Server usuń zaznaczenie pozycji Spróbuj automatycznie rozwiązać konflikty po ich wygenerowaniu.

Możesz również ręcznie wybrać pozycję AutoWystrzymywanie wszystkich w oknie Rozwiązywanie konfliktów , a następnie wybrać jedną z następujących opcji:

  • Wszystkie typy konfliktów , jeśli chcesz, aby system próbował automatycznie rozwiązać konflikty przy użyciu wszystkich jego heurystyki.

  • Określone typy konfliktów , jeśli chcesz, aby system próbował rozwiązać konflikty, ale chcesz wykluczyć niektóre heurystyki.

    Zostanie wyświetlone okno dialogowe Wybieranie konfliktów do rozwiązania . Sprawdź lub wyczyść opcje, które chcesz włączyć lub wyłączyć, a następnie wybierz pozycję AutoWysuń.

    System próbuje automatycznie rozwiązać konflikty wyświetlane w oknie Oczekujące zmiany . Wszelkie konflikty, których system nie może rozwiązać, pozostają w oknie. Należy ręcznie rozwiązać te konflikty.

Omówienie opcji automatycznych

Można ograniczyć typy konfliktów automatycznie rozwiązywane przez opcję AutoResolve All . Po wybraniu pozycji AutoWystrzymywanie wszystkich, a następnie wybraniu pozycji Określone typy konfliktów zostanie wyświetlone okno dialogowe Wybieranie konfliktów do rozwiązania.

Zrzut ekranu przedstawiający okno dialogowe Wybieranie konfliktów do rozwiązania.

Przyczyna konfliktu

Przykład

Zaznaczenie pola wyboru


Zmiany zawartości powodujące konflikt zostały wprowadzone w każdej wersji pliku.

W wersji pliku po lewej stronie na początku dodano zero . Na końcu pliku po prawej stronie dodano trzy :

Zrzut ekranu przedstawiający zmiany zawartości powodującej konflikt.

Konflikty z wszelkimi zmianami zawartości

Zmiany zawartości zostały wprowadzone podczas operacji pobierania lub sprawdzania, które są unikatowe dla obszaru roboczego, lub podczas operacji scalania lub wycofywania, które są unikatowe dla wersji docelowej.

Wpisy cztery i pięć zostały dodane do obszaru roboczego lub wersji docelowej:

Zrzut ekranu przedstawiający zmiany zawartości unikatowe w obszarze roboczym lub docelowym.

Konflikty ze zmianami zawartości wprowadzanymi tylko w lokalnym obszarze roboczym lub gałęzi docelowej

Zmiany zawartości zostały wprowadzone podczas operacji pobierania lub sprawdzania, które są unikatowe dla serwera lub podczas operacji scalania lub wycofywania, które są unikatowe dla wersji źródłowej.

Wpisy cztery i pięć zostały dodane do serwera lub wersji źródłowej:

Zrzut ekranu przedstawiający zmiany zawartości unikatowe dla serwera lub źródła.

Konflikty ze zmianami zawartości wprowadzonych tylko w wersji serwera lub gałęzi źródłowej

Nazwa pliku została zmieniona na serwerze podczas operacji pobierania lub ewidencjonowania albo w gałęzi źródłowej podczas operacji scalania lub wycofywania.

Wyewidencjonowaliśmy plik o nazwie launch.cs i pracowaliśmy nad nim. W tym czasie ktoś inny zaewidencjonował zestaw zmian, który miał wpływ na ten sam plik. Ten zestaw zmian nie zmodyfikował zawartości pliku, ale zmienił nazwę pliku na start.cs.

Konflikty spowodowane zmianą nazwy pliku w wersji serwera lub gałęzi źródłowej

Wprowadzono typowe zmiany zawartości, które spowodowały identyczną zawartość w każdej wersji. Możesz też zmienić plik, zaewidencjonować go za pośrednictwem kompilacji zaewidencjonowanej bramowanej i wybrać opcję Zachowaj oczekujące zmiany lokalnie .

Zmiany w każdej wersji spowodowały identyczną zawartość pliku. Zmiany mogą dotyczyć zawartości w plikach, jak pokazano w poniższym przykładzie:

Zrzut ekranu przedstawiający identyczne zmiany zawartości w obu wersjach.

Konflikty spowodowane identyczną zmianą serwera i obszaru roboczego

Ta opcja rozwiązuje również konflikty spowodowane przez wszystkie inne operacje, na przykład zmiana nazwy, usuwanie, cofanie usuwania i rozgałęzienia, które powodują identyczne pliki.

Napiwek

Jeśli zaznaczysz to pole wyboru, po kontynuowaniu system rozwiąże te zmiany, pobierając wersję serwera do obszaru roboczego.

Automerge selected conflicts (Automerge selected conflicts)

Aby spróbować rozwiązać wybrane konflikty przy użyciu wszystkich poprzednich opcji automerge, wybierz co najmniej jeden konflikt, a następnie wybierz pozycję Automerge.

Napiwek

Możesz nacisnąć i przytrzymaj klawisz Ctrl lub Shift, aby zaznaczyć wiele konfliktów.

Uwaga

Jeśli funkcja Automerge jest wyłączona, należy ręcznie rozwiązać konflikty.

Ręczne rozwiązywanie wybranych konfliktów

Jeśli system nie może automatycznie rozwiązać konfliktu lub chcesz upewnić się, że rozumiesz, co się zmienia, musisz ręcznie rozwiązać konflikt. W każdym konflikcie system wyświetla akcje, które można wykonać, aby rozwiązać konflikt. Wyświetlane akcje zależą od typu konfliktu i operacji, która spowodowała konflikt.

Korzystanie z okna Scalanie

W przypadku konfliktu zmian zawartości powoduje konflikt, możesz wybrać pozycję Scal zmiany w narzędziu scalania. Zostanie wyświetlone okno Scalanie .

Zrzut ekranu przedstawiający zmiany scalania w narzędziu scalania.

W oknie Scalanie można wykonywać następujące czynności:

  • Wybierz układ okna: Widok pionowy, Widok poziomy lub Widok mieszany.
  • Nawiguj między różnicami i konfliktami.
  • Wybierz elementy z lewej i prawej wersji pliku, aby uwzględnić je w wynikach.
  • Wpisz więcej zawartości w pliku w okienku Wynik .
  • Wyświetl historię pliku. Aby uzyskać więcej informacji, zobacz Pobieranie historii elementu.
  • Porównaj wersje pliku.
  • Dodaj adnotację do pliku, aby zobaczyć, kto zmienił co. Aby uzyskać więcej informacji, zobacz Wyświetlanie zmian plików przy użyciu adnotacji.

Jeśli zawartość okienka Wynik jest zadowolona, wybierz pozycję Akceptuj scalanie.

Wynik rozwiązania konfliktu pojawia się w okienku Wynik .