Scal polecenie (Kontrola wersji serwera Team Foundation)

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

Visual Studio 2019 | Visual Studio 2022

Polecenie tf merge stosuje zmiany z jednej gałęzi do innej w Kontrola wersji serwera Team Foundation (TFVC).

Uwaga

Wyniki tego polecenia nie zostaną odzwierciedlone na serwerze usługi Azure DevOps, dopóki nie wykonasz operacji zaewidencjonowania. Aby uzyskać więcej informacji, zobacz Tworzenie kodu i zarządzanie oczekującymi zmianami.

Wymagania wstępne

Aby użyć merge polecenia , musisz mieć uprawnienie Wyewidencjonuj ustaw opcję Zezwalaj dla folderu obszaru roboczego, który zawiera destinationelement , i musisz mieć uprawnienie Odczyt ustawione na wartość Zezwalaj dla folderu obszaru roboczego zawierającego sourceelement . Aby uzyskać więcej informacji, zobacz Domyślne uprawnienia kontroli wersji serwera Team Foundation.

Składnia

tf merge [/recursive] [/force] [/candidate] [/discard] 
[/version:versionspec] [/lock:none|checkin|checkout] [/preview] 
[/baseless] [/nosummary] [/noimplicitbaseless] [/conservative] [/format:(brief|detailed)] [/noprompt] [/login:username,[password]] source destination

Parametry

Argumenty

Argument

Opis

<versionspec>

Zawiera wartość, taką jak C2 dla /version opcji. Aby uzyskać więcej informacji na temat analizowania specyfikacji wersji w celu określenia, które elementy znajdują się w jego zakresie, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).

<source>

Określa plik lub folder, który ma działać jako źródło scalania.

<destination>

Określa plik lub folder, który ma działać jako miejsce docelowe scalania.

<username>

Udostępnia wartość /login opcji. Wartość można określić username jako DOMAIN\username lub username.

Opcje

Opcja

Opis

/recursive

Pasuje do specyfikacji source elementu w bieżącym katalogu i wszystkich podfolderach.

/force

Ignoruje historię scalania i scala określone zmiany ze źródła do miejsca docelowego, nawet jeśli niektóre lub wszystkie te zmiany zostały scalone wcześniej.

/candidate

Drukuje listę wszystkich zmian w źródle, które nie zostały jeszcze scalone z miejscem docelowym. Lista powinna zawierać identyfikator zestawu zmian, który nie został scalony, oraz inne podstawowe informacje o tym zestawie zmian. Gwiazdka dla danego wyniku wskazuje, że została częściowo scalona, co oznacza, że niektóre zmiany w zestawie zmian zostały scalone, a inne zmiany nie zostały scalone.

/discard

Nie wykonuje operacji scalania, ale aktualizuje historię scalania, aby śledzić, czy wystąpiło scalanie. Spowoduje to odrzucenie zestawu zmian w celu użycia dla określonego scalania.

/version

W przypadku scalania selektywnego ta opcja określa zakres, który ma zostać scalony z miejscem docelowym. W przypadku scalania zaległości ten parametr określa wersję, przed którą należy scalić wszystkie nieskonsumowane zmiany.

W przypadku scalania selektywnego zakres wersji określa początek i punkt końcowy zestawu zmian do scalenia. Jeśli na przykład próbujesz scalić wersję 4~6, zestawy zmian 4, 5 i 6 zostaną scalone.

/lock

Określa typ blokady lub usuwa blokadę z elementu. Aby uzyskać więcej informacji, zobacz Omówienie typów blokad.

Opcje blokady:

  • None: nie umieszcza blokady na elemencie i usuwa wszelkie istniejące blokady z elementu.

  • Checkin: Inni użytkownicy mogą wyewidencjonować określone elementy, ale nie mogą zaewidencjonować poprawek w zablokowanych plikach, dopóki nie zwolnisz blokady, wykonując ewidencjonowania. Jeśli inni użytkownicy zablokowali dowolny z określonych elementów, operacja blokowania zakończy się niepowodzeniem.

  • Checkout: Uniemożliwia użytkownikom zaewidencjonowanie lub wyewidencjonowanie dowolnego z określonych elementów do momentu jawnego zwolnienia blokady. Jeśli inni użytkownicy zablokowali dowolny z określonych elementów lub jeśli istnieją oczekujące zmiany względem dowolnego elementu, operacja blokowania zakończy się niepowodzeniem.

/preview

Przedstawia podgląd scalania.

/baseless

Wykonuje scalanie bez wersji podstawowej. Oznacza to, że umożliwia użytkownikowi scalanie plików i folderów, które nie mają relacji scalania. Po scaleniu bezpodstawnym istnieje relacja scalania, a przyszłe scalania nie muszą być bezpodstawne.

Uwaga

Scalanie bezpodstawne nie może usuwać plików w obiekcie docelowym. Możesz ręcznie przenosić takie zmiany.

/noimplicitbaseless

Określa, że funkcja TFVC nie będzie wykonywać niejawnego scalania bezpodstawnego między dwoma elementami o tej samej nazwie względnej w dwóch niepowiązanych drzewach kontroli wersji.

/nosummary

Pomija podsumowanie konfliktów, błędów i ostrzeżeń.

/noprompt

Pomija wszelkie monity dotyczące danych wejściowych.

/conservative

Powoduje więcej konfliktów podczas scalania jednej gałęzi z inną.

/format

Określa formaty podsumowania konfliktów scalania:

  • Brief (ustawienie domyślne): sumuje tylko łączną liczbę konfliktów, ostrzeżeń i błędów.
  • Detailed: zawiera podsumowanie nie tylko całkowitej liczby konfliktów, ostrzeżeń i błędów, ale także zawiera szczegółowe informacje o każdym konflikcie.

Uwaga

Ta opcja ma zastosowanie tylko wtedy, gdy dane wyjściowe zawierają podsumowanie konfliktów. Nie można wyświetlić podsumowania, jeśli /nosummary jest używana opcja lub scalanie spowodowało mniej niż 10 konfliktów, ostrzeżeń i błędów.

/login

Określa nazwę użytkownika i hasło do uwierzytelniania użytkownika w usłudze Azure DevOps.

Uwagi

Możesz użyć merge polecenia tf narzędzia wiersza polecenia, aby zastosować zmiany w istniejącej gałęzi źródłowej do istniejącej gałęzi docelowej. Możesz scalić pojedynczą wersję lub kompletny zestaw zmian w gałęzi docelowej. Możesz scalić zmiany ze źródła do gałęzi docelowej lub z lokalizacji docelowej do gałęzi źródłowej.

Polecenie merge umożliwia również wykonywanie zapytań o zmiany w gałęzi źródłowej, które nie zostały zmigrowane do gałęzi docelowej. Polecenie pozwala również wskazać, że niektóre zmiany nigdy nie zostaną scalone ze źródła do miejsca docelowego i nie powinny być już wyświetlane jako kandydaci do operacji scalania.

Aby uzyskać więcej informacji na temat korzystania z tf narzędzia wiersza polecenia, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).

Scalanie bezpodstawne

Scalanie bezpodstawne umożliwia scalanie elementów, które nie są bezpośrednio rozgałęziane ze sobą. Aby wykonać bezpodstawne scalanie, należy użyć tf merge polecenia . W przypadku scalania bezpodstawnego funkcja TFVC nie zawiera żadnych informacji o relacji plików w gałęziach. W bezpodstawnym scalaniu należy wykonać ręczne rozwiązania konfliktów. Po wykonaniu bezpodstawnego scalania i rozwiązywaniu wszelkich konfliktów funkcja TFVC rejestruje historię scalania i ustanawia relację między folderami i plikami.

Po uruchomieniu tf mergepolecenie TFVC wykonuje niejawne scalanie bezpodstawne między elementami o tej samej nazwie względnej w dwóch poprzednich drzewach kontrolowanych przez wersję. Na przykład możesz scalić powiązane gałęzie $SRC i $TGT. Obie gałęzie zawierają niepowiązany plik o nazwie a.txt. Po uruchomieniu tf mergepolecenie TFVC ustanawia relację między dwoma plikami a.txt , jeśli dwa pliki są takie same, szyfrowanie zgodne ze standardem FIPS jest wyłączone, a plik źródłowy nie jest powiązany z żadnym innym plikiem w obiekcie docelowym.

Jeśli uruchomisz tf merge polecenie z zestawem /noimplicitbaseless opcji, gdy program TFVC spróbuje scalić dwie gałęzie, dwa pliki a.txt tworzą konflikt przestrzeni nazw podczas próby zaewidencjonowania zmian. Aby rozwiązać konflikt, musisz zmienić nazwę jednego z plików.

Przykłady

Poniższy przykład scala zmiany z MyFile_beta1 , które nie zostały scalone z MyFile_RTM.

c:\projects>tf merge MyFile_beta1 MyFile_RTM /recursive

Poniższy przykład scala zestaw zmian 137 z gałęzią Branch2.

c:\projects>tf merge /version:C137~C137 branch1 branch2 /recursive

Poniższy przykład scala wszystkie zestawy zmian w zestawie zmian 137 do gałęzi Branch2.

c:\projects>tf merge /version:C137 branch1 branch2 /recursive

Poniższy przykład wyświetla listę zmian w gałęzi Branch1 , które nie zostały scalone z gałęzią Branch2.

c:\projects>tf merge /candidate branch1 branch2 /recursive

W poniższym przykładzie jest wyświetlana lista zmian w gałęzi Branch2 , które nie zostały scalone z gałęzią Branch1.

c:\projects>tf merge /candidate branch2 branch1 /recursive

Poniższy przykład odrzuca zestaw zmian 137 jako kandydata do scalenia z gałęzią Branch2.

c:\projects>tf merge /discard /version:C137~C137 branch1 branch2 /recursive

Poniższy przykład odrzuca wszystkie zestawy zmian w zestawie zmian 137 jako kandydatów do scalenia z gałęzią Branch2.

c:\projects>tf merge /discard /version:C137 branch1 branch2 /recursive