Rozwiązywanie konfliktów Kontrola wersji serwera Team Foundation

Azure DevOps Services | Azure DevOps Server 2022 r. — Azure DevOps Server 2019 r. | TFS 2018

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 działać 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.

Możesz również rozwiązać konflikty z wiersza polecenia, używając polecenia Resolve.

Porada

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

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

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

Domyślnie w oknie są wyświetlane tylko konflikty spowodowane przez ostatnią operację, którą próbowano wykonać. 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, jest scalanie lub wycofywanie, możesz wybrać kontrolkę menu po prawej stronie 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ównania.Porównaj lub wybierz strzałkę listy rozwijanej obok ikony, a następnie wybierz polecenie. Zostanie otwarte okno Różnice .

  • Ikona dodawania adnotacji.Dodaj adnotację do wyświetlania szczegółów dotyczących wszystkich zmian wprowadzonych w najnowszej wersji pliku, w tym osób, które dokonały każdej zmiany i kiedy zostały wprowadzone. Zobacz Wyświetlanie zmian plików przy użyciu adnotacji.

AutoZapisz wszystkie konflikty

Domyślnie system automatycznie próbuje automatycznie wykonać konflikty AutoResolve All , chyba że wyłączysz tę opcję. Aby wyłączyć automatyczne autoodłączanie wszystkie, wybierz pozycję Opcje narzędzi>. W oknie dialogowym Opcje w obszarze Kontrola> źródłaprogramu Visual Studio Team Foundation Server usuń zaznaczenie pola Wyboru Spróbuj automatycznie rozwiązać konflikty po ich wygenerowaniu.

Możesz również ręcznie wybrać pozycję AutoResolve Wszystkie 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 . Zaznacz lub wyczyść opcje, które chcesz włączyć lub wyłączyć, a następnie wybierz pozycję AutoZapisz.

    System próbuje automatycznie rozwiązać konflikty wyświetlane w oknie Oczekujące zmiany . Wszelkie konflikty, które system nie może rozwiązać, pozostają w oknie. Musisz 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 opcji AutoResolve Wszystkie , 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.

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

Zrzut ekranu przedstawiający zmiany zawartości, które nie powodują konfliktu.

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 dla obszaru roboczego lub miejsca docelowego.

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 wprowadzanymi tylko w wersji serwera lub gałęzi źródłowej

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

Wyewidencjonowaliśmy plik o nazwie launch.cs i pracował nad nim. W tym czasie ktoś inny zaewidencjonował zestaw zmian, którego dotyczy 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, a następnie wybrać opcję Zachowaj moje 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 zmienianie nazwy, usuwanie, cofanie i rozgałęzianie, które powodują identyczne pliki.

Porada

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

Automerge zaznaczonych konfliktów

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.

Porada

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

Uwaga

Jeśli automerge jest wyłączone, 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 jeśli chcesz się upewnić, ż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 w plikach przy użyciu adnotacji.

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

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