Wycofywanie polecenia (Kontrola wersji team foundation)
Azure DevOps Services | Azure DevOps Server 2022 — Azure DevOps Server 2019
Visual Studio 2019 | Program Visual Studio 2022
Możesz użyć polecenia Team Foundation Version Control (TFVC) tf rollback
, aby wycofać wpływ co najmniej jednego zestawu zmian na co najmniej jeden element kontrolowany przez wersję. To polecenie nie usuwa zestawów zmian z historii wersji elementu. Zamiast tego to polecenie tworzy zestaw oczekujących zmian w obszarze roboczym, które negują skutki określonych zestawów zmian.
Warunki wstępne
Aby użyć tego polecenia, uprawnienia odczytu, wyewidencjonowaniai ewidencjonowania ustawione na Zezwalaj na. Aby uzyskać więcej informacji, zobacz Domyślne uprawnienia serwera TFVC.
Składnia
tf rollback /toversion:VersionSpec ItemSpec [/recursive] [/lock:none|checkin|checkout] [/version:versionspec] [/keepmergehistory] [/login:username,[password]] [/noprompt]
tf rollback /changeset:ChangesetFrom~ChangesetTo [ItemSpec] [/recursive] [/lock:none|checkin|checkout] [/version:VersionSpec]
[/keepmergehistory] [/noprompt] [/login:username,[password]]
Parametry
Argumenty
argumentów
opis
<ChangesetFrom>~<ChangesetTo>
Użyj tego argumentu z opcją /changeset
, aby określić zestawy zmian, które chcesz wycofać. Zestawy zmian można określić na następujące sposoby:
- Pojedynczy zestaw zmian, na przykład
/changeset:C11
- Zakres zestawów zmian, na przykład
/changeset:C7~C20
- Data, na przykład
/changeset:D09/30/09
- Zakres dat, na przykład
/changeset:D09/23/09~D10/07/09
- Najnowszy zestaw zmian,
/changeset:Tip
lub/changeset:T
<ItemSpec>
Użyj tego argumentu, aby określić co najmniej jeden element, który chcesz wycofać. Jeśli używasz opcji /toversion
, musisz określić ten argument.
Aby uzyskać więcej informacji na temat sposobu analizowania specyfikacji elementów kontroli wersji serwera TFVC, zobacz Use Team Foundation version control commands.
Nuta
Można określić więcej niż jeden argument itemspec
.
<VersionSpec>
Wartość podana przez użytkownika zarówno dla opcji /version
, jak i opcji /toversion
.
Użyj tego argumentu z opcją /toversion
, aby przywrócić plik do jego stanu w określonym zestawie zmian. Wersję można określić na następujące sposoby:
- Pojedynczy zestaw zmian, na przykład
/toversion:C32
- Data o północy, na przykład
/toversion:D06/19/09
- Data i godzina, na przykład
/toversion:D06/19/09T14:32
- Etykieta, na przykład
/toversion:LTestLabel
- Wersja w obszarze roboczym mapowanym na bieżący katalog
/toversion:W
- Wersja w określonym obszarze roboczym, na przykład
/toversion:WResolveRIConflicts;AKerry
Aby uzyskać więcej informacji na temat analizowania versionspec
kontroli wersji serwera TFVC, zobacz Use Team Foundation version control commands (Używanie poleceń kontroli wersji programu Team Foundation).
Opcje
opcji
opis
/changeset
Użyj tej opcji, aby określić co najmniej jeden konkretny zestaw zmian, który chcesz negować.
/keepmergehistory
Ta opcja ma wpływ tylko wtedy, gdy co najmniej jeden zestaw zmian, które są przywracane, obejmują gałąź lub scalanie zmiany. Określ tę opcję, jeśli chcesz, aby przyszłe scalania między tym samym źródłem i tym samym elementem docelowym wykluczały zmiany, które są wycofywanie.
/lock
Określ tę opcję, aby uniemożliwić innym użytkownikom ewidencjonowanie lub wyewidencjonowanie elementów do momentu zakończenia wycofywania wszystkich skojarzonych zmian. Aby uzyskać więcej informacji, zobacz Omówienie typów blokad.
Opcje blokady:
-
None
. Domyślny. Nie zastosowano blokady. Jeśli plik, który jest przywracany, został zablokowany, ta opcja spowoduje usunięcie blokady. -
Checkin
. Blokuje element do momentu zwolnienia blokady przez wykonanie ewidencjonu. Inni użytkownicy mogą wyewidencjonować określony element, ale użytkownicy nie mogą zaewidencjonować poprawek, dopóki blokada nie zostanie usunięta. Nie można zablokować pliku, który jest już zablokowany. -
Checkout
. Uniemożliwia użytkownikom zaewidencjonowanie lub wyewidencjonowanie zablokowanego elementu do momentu usunięcia blokady przez zaewidencjonowanie.
/login
Aby uzyskać informacje na temat tej opcji, zobacz Use options to modify how a command functions.
/noprompt
Użyj tej opcji, aby pominąć wszystkie okna dialogowe, które w przeciwnym razie będą wyświetlane podczas tej operacji.
/recursive
Określ tę opcję, jeśli chcesz, aby operacja zawierała elementy w podfolderach.
/toversion
Określ tę opcję, aby przywrócić plik do jego stanu w określonym zestawie zmian. Jeśli używasz tej opcji, negujesz efekt wszystkich zestawów zmian, które zostały zastosowane od określonej wersji.
/version
Określa bieżącą wersję plików i folderów, które chcesz wycofać.
Uwagi
Polecenie tf rollback
neguje efekt każdego zestawu zmian określonego dla każdego określonego elementu. W poniższej tabeli przedstawiono sposób, w jaki operacja neguje każdy rodzaj zmiany.
Typ zmiany wycofanej | Typ zmiany wycofywania |
---|---|
dodaj, gałęzilub cofania | usuwanie |
edytowanie | edytowanie |
kodowanie | kodowanie |
zmienianie nazwy/przenoszenie | zmienianie nazwy/przenoszenie |
usuwanie |
cofanie usunięcia |
scalanie | Zmień to, co neguje wszystkie zmiany scalone z bieżącą gałęzią. |
Poniższa lista zawiera kilka przykładów zmian, które wynikają z polecenia rollback
:
Wycofasz zestaw zmian, w którym wystąpiła zmiana dodawania. Operacja wycofywania powoduje zmianę wycofywania
i zmianę usuwania .Wycofasz zestaw zmian 521, w którym wystąpiła zmiana edytowania. Operacja wycofywania powoduje zmianę wycofywania
i zmianę edycji , która neguje zmianęedycji w zestawie zmian 521.W zestawie zmian 132 scalone z $/BranchA/File1.txt do $/BranchB/File1.txt. Zmiany w tym scalaniu obejmowały edycji zmian w zestawach zmian 92 i 104. W zestawie zmian 162 wycofasz zestaw zmian 132, co powoduje wycofanie zmian i zmianę edycji$/BranchB/File1.txt, która neguje edycji zmian w zestawach zmian 92 i 104.
Kody zakończenia
Po uruchomieniu polecenia tf rollback
zostanie wyświetlony kod zakończenia z poniższej tabeli.
Kod zakończenia | Opis |
---|---|
0 | Operacja pomyślnie wycofała wszystkie elementy. |
1 | Operacja wycofała co najmniej jeden element, ale nie mogła wycofać co najmniej jednego elementu. |
100 | Operacja nie mogła wycofać żadnych elementów. |
Przykłady
Poniższy przykład neguje wpływ zestawu zmian 23 na wszystkie elementy, które zostały zmienione w tym zestawie zmian:
c:\workspace> tf rollback /changeset:C23
Poniższy przykład neguje wpływ zestawu zmian 23 na plik a.txt:
c:\workspace> tf rollback /changeset:C23 a.txt
Poniższy przykład zmienia zawartość a.txt tak, aby była zgodna z wersją zaewidencjonowana przy użyciu zestawu zmian 23:
c:\workspace> tf rollback /toversion:C23 a.txt
W poniższym przykładzie zawartość OurTeamProject zgodna z ostatnim zestawem zmian zastosowanym do północy 31 sierpnia 2009 r. lub przed północą:
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Przykład /keepmergehistory opcja
Po wycofaniu zestawu zmian, który zawierał gałąź lub zmianę scalania, zwykle chcesz, aby przyszłe scalania między tym samym źródłem i tym samym elementem docelowym obejmowały te zmiany. Można jednak użyć opcji /keepmergehistory
, jeśli chcesz, aby przyszłe scalanie między tym samym źródłem i tym samym elementem docelowym wykluczało zestawy zmian, które zostały objęte w poprzedniej operacji scalania. Na przykład:
30 czerwca 2009 r. wykonujesz pełne scalanie wszystkich elementów z $/BranchA/ do $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Zaewidencjonujesz to scalanie w ramach zestawu zmian 292.
W lipcu wprowadzisz kilka zmian $/BranchA/Util.cs. Te zmiany są uwzględniane w zestawach zmian 297, 301 i 305.
1 sierpnia 2009 r. scalisz $/BranchA/Util.cs, aby $/BranchB/Util.cs.
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Zaewidencjonujesz zmianę w ramach zestawu zmian 314. Wynikiem tej operacji jest to, że zmiany wprowadzone w zestawach zmian 297, 301 i 305 do $/BranchA/Util.cs są teraz stosowane również do $/BranchB/Util.cs.
Tydzień później zdajesz sobie sprawę, że zmiany wprowadzone w $/BranchA/Util.cs w lipcu nie są odpowiednie dla $/BranchB/Util.cs. Za pomocą polecenia
rollback
można negować te zmiany. Jeśli używasz poleceniarollback
do wycofania scalania zmiany lub zmiany gałęzi , masz decyzję o podjęciu decyzji.Jeśli chcesz, aby zmiany wprowadzone w $/BranchA/Util.cs w lipcu zostały ponownie zastosowane do $/BranchB/Util.cs w przyszłych scalaniach, wprowadź następujące polecenie:
c:\workspace> tf rollback /changeset:314
Jeśli chcesz, aby zmiany wprowadzone w $/BranchA/Util.cs w lipcu nigdy nie zostały ponownie zastosować do $/BranchB/Util.cs w przyszłych scalaniach, wprowadź następujące polecenie:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
Kilka tygodni później scalisz $/BranchA/ z $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Jeśli pominięto opcję
/keepmergehistory
po wycofaniu, zmiana scalania dotyczy $/BranchB/Util.cs wszystkich zestawów zmian zastosowanych do $/BranchA/Util.cs od zmiany zestawu zmian 292, w tym zestawów zmian 297, 301 i 305. Innymi słowy scalanie cofa zmianę wycofywania.Jeśli opcja
/keepmergehistory
została uwzględniona po wycofaniu, operacja scalania ma zastosowanie do $/BranchB/Util.cs wszystkich zestawów zmian zastosowanych do $/BranchA/Util.cs od zmiany zestawu zmian 292, z wyłączeniem zestawów zmian 297, 301 i 305. Innymi słowy, scalanie nie cofa zmiany wycofywania. W związku z tym zawartość BranchA może być niezgodna z zawartością BranchB.