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 destination
element , i musisz mieć uprawnienie Odczyt ustawione na wartość Zezwalaj dla folderu obszaru roboczego zawierającego source
element . 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 merge
polecenie 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 merge
polecenie 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