Příkaz Vrácení zpět (Správa verzí Team Foundation)
Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019
Visual Studio 2019 | Visual Studio 2022
Pomocí příkazu Správa verzí Team Foundation (TFVC) tf rollback
můžete vrátit efekty jedné nebo více sad změn na jednu nebo více verzí kontrolovaných položek. 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
Chcete-li použít tento příkaz, musíte mít oprávnění ke čtení, rezervace a vrácení se změnami nastavená na povolit. Další informace naleznete v tématu Výchozí oprávnění TFVC.
Syntaxe
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
Popis
<ChangesetFrom>~<ChangesetTo>
Pomocí tohoto argumentu /changeset
můžete určit 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 nebo
/changeset:Tip
/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 /toversion
tuto možnost, je nutné zadat tento argument.
Další informace o tom, jak TFVC parsuje 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 /version
pro možnost i /toversion
možnost.
Tento argument použijte s /toversion
možností vrátit soubor do 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
příkazy správy verzí Team Foundation.
Možnosti
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í změnu větve nebo sloučení . 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 Vysvětlení 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í k úpravě způsobu fungování příkazu.
/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řidání, větev nebo zrušení odstranění | odstranění |
Upravit | Upravit |
Kódování | Kódování |
přejmenování nebo přesunutí | přejmenování nebo přesunutí |
odstranění | Undelete |
Sloučit | Změna, která neguje všechny změny sloučené do aktuální větve. |
Následující seznam obsahuje některé příklady změn, které jsou výsledkem rollback
příkazu:
Vrátíte zpět sadu změn, ve které došlo k přidání změny. Operace vrácení zpět způsobí změnu vrácení zpět a změnu odstranění .
Vrátíte zpět sadu změn 521, ve které došlo ke změně úprav . Operace vrácení zpět způsobí změnu vrácení zpět a změnu úprav , která neguje změnu úprav 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ěn 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 změně úprav na $/BranchB/File1.txt , která neguje změny úprav v sadách změn 92 a 104.
Ukončovací kódy
Po spuštění tf rollback
příkazu 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. |
0 | 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. Tuto možnost však můžete použít /keepmergehistory
, pokud chcete budoucí sloučení mezi stejným zdrojem a stejným cílem vyloučit sady změn, které byly zahrnuty v předchozí operaci sloučení. Pří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.
O 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í
rollback
příkazu. Když příkaz použijeterollback
k vrácení změny sloučení nebo změny 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 budoucnu, 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 tuto možnost vynecháte
/keepmergehistory
, platí změna sloučení pro $/BranchB/Util.cs všechny sady změn použité u $/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
/keepmergehistory
možnost, operace sloučení se vztahuje na $/BranchB/Util.cs všechny sady změn použité u $/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 ve větvi A nemusí shodovat s obsahem ve branchB.