Rollback command (Team Foundation Version Control)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Příkaz TFVC (Team Foundation Version Control tf rollback
) můžete použít k vrácení efektů jedné nebo více sad změn na jednu nebo více položek řízených verzí. Tento příkaz neodebere sady změn z historie verzí položky. Místo toho tento příkaz vytvoří sadu čekajících změn v pracovním prostoru, které negují účinky zadaných sad změn.
Požadavky
Pokud chcete použít tento příkaz, nastavte oprávnění Číst, Rezervovata Vrátit se změnami nastavená na Povolit. Další informace najdete v tématu Výchozí oprávnění TFVC.
Syntax
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
argumentu
popis
<ChangesetFrom>~<ChangesetTo>
Tento argument použijte s možností /changeset
a určete sady změn, které chcete vrátit zpět. Sady změn můžete zadat následujícími způsoby:
- Jedna sada změn, například
/changeset:C11
- Rozsah sad změn, například
/changeset:C7~C20
- Datum, například
/changeset:D09/30/09
- Rozsah kalendářních dat, například
/changeset:D09/23/09~D10/07/09
- Nejnovější sada změn,
/changeset:Tip
nebo/changeset:T
<ItemSpec>
Tento argument použijte k určení jedné nebo více položek, které chcete vrátit zpět. Pokud použijete možnost /toversion
, je nutné zadat tento argument.
Další informace o tom, jak TFVC analyzuje specifikace položek, naleznete v tématu Použití příkazů správy verzí Team Foundation.
Poznámka
Můžete zadat více než jeden itemspec
argument.
<VersionSpec>
Hodnota zadaná uživatelem pro možnost /version
i možnost /toversion
.
Tento argument použijte s možností /toversion
vrátit soubor do jeho stavu v konkrétní sadě změn. Verzi můžete zadat následujícími způsoby:
- Jedna sada změn, například
/toversion:C32
- Datum o půlnoci, například
/toversion:D06/19/09
- Datum a čas, například
/toversion:D06/19/09T14:32
- Popisek, například
/toversion:LTestLabel
- Verze v pracovním prostoru, která je namapovaná na aktuální adresář,
/toversion:W
- Verze v konkrétním pracovním prostoru, například
/toversion:WResolveRIConflicts;AKerry
Další informace o tom, jak TFVC parsuje versionspec
, naleznete v tématu Použití příkazů správy verzí Team Foundation.
Volby
možnost
popis
/changeset
Tuto možnost použijte k určení jedné nebo více konkrétních sad změn, které chcete negovat.
/keepmergehistory
Tato možnost má vliv jenom v případě, že jedna nebo více sad změn, které vracíte, zahrnují větev nebo sloučení změnit. Tuto možnost zadejte, pokud chcete budoucí sloučení mezi stejným zdrojem a stejným cílem vyloučit změny, které vracíte zpět.
/lock
Tuto možnost zadejte, pokud chcete ostatním uživatelům zabránit v vrácení se změnami nebo rezervace položek, dokud nedokončíte vrácení všech přidružených změn zpět. Další informace najdete v tématu Principy typů zámků.
Možnosti uzamčení:
-
None
. Výchozí. Není použit žádný zámek. Pokud byl soubor, který vracíte zpět, uzamčen, tato možnost zámek odebere. -
Checkin
. Uzamkne položku, dokud zámek nepustíte provedením vrácení se změnami. Ostatní uživatelé můžou rezervovat zadanou položku, ale uživatelé nemůžou vrátit revize se změnami, dokud se zámek neodebere. Soubor, který je už uzamčený, nemůžete uzamknout. -
Checkout
. Zabrání uživatelům vrátit se změnami nebo rezervovat uzamčenou položku, dokud zámek neodeberete vrácením se změnami.
/login
Informace o této možnosti naleznete v tématu Použití možností ke změně způsobu, jakým příkaz funguje.
/noprompt
Tuto možnost použijte k potlačení všech dialogových oken, která by se jinak zobrazovala během této operace.
/recursive
Tuto možnost zadejte, pokud chcete, aby operace zahrnovala položky do podsložek.
/toversion
Tuto možnost zadejte, pokud chcete vrátit soubor do stavu v konkrétní sadě změn. Při použití této možnosti negujete účinek všech sad změn, které byly použity od zadané verze.
/version
Určuje aktuální verzi souborů a složek, které chcete vrátit zpět.
Poznámky
Příkaz tf rollback
neguje účinek každé sady změn, kterou zadáte pro každou zadaná položku. Následující tabulka uvádí, jak operace neguje jednotlivé druhy změn.
Typ změny vrácený zpět | Typ změny vrácení zpět |
---|---|
přidat, větevnebo zrušit | odstranit |
upravit | upravit |
kódování |
kódování |
přejmenování nebo přesunutí | přejmenování nebo přesunutí |
odstranit | zrušení |
sloučení | Změna, která neguje všechny změny sloučené do aktuální větve. |
Následující seznam obsahuje několik příkladů změn, které jsou výsledkem příkazu rollback
:
Vrátíte sadu změn, ve které přidat ke změně. Operace vrácení zpět způsobí změnu vrácení zpět a odstranění změny.
Vrátíte zpět sadu změn 521, ve které upravit došlo ke změně. Operace vrácení zpět způsobí změnu vrácení zpět a změnu úprav, která neguje úpravy v sadě změn 521.
V sadě změn 132 jste sloučili z $/BranchA/File1.txt do $/BranchB/File1.txt. Změny v sloučení zahrnovaly úpravy změny v sadách změn 92 a 104. V sadě změn 162 vrátíte zpět sadu změn 132, což vede ke změně vrácení zpět a úpravy změnit na $/BranchB/File1.txt, která neguje úpravy změny v sadách změn 92 a 104.
Ukončovací kódy
Po spuštění příkazu tf rollback
se zobrazí ukončovací kód z následující tabulky.
Ukončovací kód | Popis |
---|---|
0 | Operace úspěšně vrátila všechny položky. |
1 | Operace vrátila alespoň jednu položku úspěšně, ale nepodařilo se vrátit zpět jednu nebo více položek. |
100 | Operace nemohla vrátit žádné položky. |
Příklady
Následující příklad neguje účinek sady změn 23 na všechny položky, které byly změněny v této sadě změn:
c:\workspace> tf rollback /changeset:C23
Následující příklad neguje účinek sady změn 23 na soubor a.txt:
c:\workspace> tf rollback /changeset:C23 a.txt
Následující příklad změní obsah a.txt tak, aby odpovídal verzi, která byla vrácena se změnami se sadou změn 23:
c:\workspace> tf rollback /toversion:C23 a.txt
Následující příklad změní obsah OurTeamProject tak, aby odpovídal poslední sadě změn použité 31. srpna 2009 nebo před půlnocí:
c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/
Příklad možnosti /keepmergehistory
Když vrátíte zpět sadu změn, která obsahovala větev nebo změnu sloučení, obvykle chcete, aby budoucí sloučení mezi stejným zdrojem a stejným cílem zahrnovala tyto změny. Možnost /keepmergehistory
ale můžete použít, pokud chcete budoucí sloučení mezi stejným zdrojem a stejným cílem vyloučit sady změn zahrnuté v předchozí operaci sloučení. Například:
30. června 2009 provedete úplné sloučení všech položek z $/BranchA/ do $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Toto sloučení můžete vrátit se změnami jako součást sady změn 292.
V červenci provedete několik změn $/BranchA/Util.cs. Tyto změny jsou zahrnuty v sadách změn 297, 301 a 305.
1. srpna 2009 sloučíte $/BranchA/Util.cs do $/BranchB/Util.cs.
c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
Změnu můžete vrátit se změnami jako součást sady změn 314. Výsledkem této operace je, že úpravy provedené v sadách změn 297, 301 a 305 na $/BranchA/Util.cs se teď použijí také na $/BranchB/Util.cs.
Týden později zjistíte, že úpravy provedené v $/BranchA/Util.cs v červenci nejsou vhodné pro $/BranchB/Util.cs. Tyto změny můžete negovat pomocí příkazu
rollback
. Když použijete příkazk vrácení sloučení změn nebo větve, musíte se rozhodnout. Pokud chcete, aby se změny provedené v $/BranchA/Util.cs v červenci znovu použily na $/BranchB/Util.cs v budoucnu, zadejte následující příkaz:
c:\workspace> tf rollback /changeset:314
Pokud chcete, aby se změny provedené v $/BranchA/Util.cs v červenci nikdy znovu nepoužívaly na $/BranchB/Util.cs v budoucích sloučeních, zadejte následující příkaz:
c:\workspace> tf rollback /changeset:314 /keepmergehistory
O několik týdnů později sloučíte $/BranchA/ do $/BranchB/.
c:\workspace> tf merge $/BranchA $/BranchB
Pokud při vrácení zpět vynecháte možnost
, platí změna sloučení pro $/BranchB/Util.cs všechny sady změn použité na$/BranchA/Util.cs od sady změn 292, včetně sad změn 297, 301 a 305. Jinými slovy sloučení vrátí zpět změnu vrácení zpět.Pokud jste při vrácení zpět zahrnuli možnost
/keepmergehistory
, operace sloučení platí pro $/BranchB/Util.cs všechny sady změn použité na $/BranchA/Util.cs od sady změn 292 s výjimkou sad změn 297, 301 a 305. Jinými slovy sloučení nevrácenou změnu vrácení zpět zpět. Proto se obsah BranchA nemusí shodovat s obsahem BranchB.
Související články
- použití příkazů pro správu verzí Team Foundation
- příkazu
sloučit