Sdílet prostřednictvím


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:

  1. 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.

  2. V červenci provedete několik změn $/BranchA/Util.cs. Tyto změny jsou zahrnuty v sadách změn 297, 301 a 305.

  3. 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.

  4. 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říkaz k 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
      
  5. 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.