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.
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ż.
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:
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.
Porównaj lub wybierz strzałkę listy rozwijanej obok ikony, a następnie wybierz polecenie. Zostanie otwarte okno Różnice .
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 .
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:
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:
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:
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:
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.
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 .
Opinia
https://aka.ms/ContentUserFeedback.
Już wkrótce: w ciągu 2024 r. będziemy stopniowo usuwać problemy z usługą GitHub jako mechanizm opinii na temat zawartości i zastępować go nowym systemem opinii. Aby uzyskać więcej informacji, sprawdź:Prześlij i wyświetl opinię dla