Delen via


Opdracht Terugdraaien (Team Foundation Version Control)

Azure DevOps Services | Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

U kunt de opdracht Team Foundation Version Control (TFVC) tf rollback gebruiken om de effecten van een of meer wijzigingensets op een of meer door versie beheerde items terug te draaien. Met deze opdracht worden de wijzigingensets niet verwijderd uit de versiegeschiedenis van een item. In plaats daarvan maakt deze opdracht een set wachtende wijzigingen in uw werkruimte die de effecten van de wijzigingensets die u opgeeft, verniett.

Vereisten

Als u deze opdracht wilt gebruiken, moet de machtigingen Lezen, Uitchecken en Inchecken zijn ingesteld op Toestaan. Zie Standaard TFVC-machtigingen voor meer informatie.

Syntaxis

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]]

Parameters

Argumenten

Argument

Beschrijving

<ChangesetFrom>~<ChangesetTo>

Gebruik dit argument met de /changeset optie om de wijzigingensets op te geven die u wilt terugdraaien. U kunt de wijzigingensets op de volgende manieren opgeven:

  • Eén wijzigingenset, bijvoorbeeld /changeset:C11
  • Een reeks wijzigingensets, bijvoorbeeld /changeset:C7~C20
  • Een datum, bijvoorbeeld /changeset:D09/30/09
  • Een datumbereik, bijvoorbeeld /changeset:D09/23/09~D10/07/09
  • De meest recente wijzigingenset of /changeset:Tip/changeset:T

<ItemSpec>

Gebruik dit argument om een of meer items op te geven die u wilt terugdraaien. Als u de /toversion optie gebruikt, moet u dit argument opgeven.

Zie Opdrachten voor versiebeheer van Team Foundation gebruiken voor meer informatie over hoe TFVC itemspecificaties parseert.

Notitie

U kunt meer dan één itemspec argument opgeven.

<VersionSpec>

De door de gebruiker opgegeven waarde voor zowel de /version optie als de /toversion optie.

Gebruik dit argument met de /toversion optie om een bestand terug te zetten naar de status ervan in een specifieke wijzigingenset. U kunt de versie op de volgende manieren opgeven:

  • Eén wijzigingenset, bijvoorbeeld /toversion:C32
  • Een datum om middernacht, bijvoorbeeld /toversion:D06/19/09
  • Een datum en een tijd, bijvoorbeeld /toversion:D06/19/09T14:32
  • Een label, bijvoorbeeld /toversion:LTestLabel
  • De versie in de werkruimte die is toegewezen aan de huidige map, /toversion:W
  • De versie in een specifieke werkruimte, bijvoorbeeld /toversion:WResolveRIConflicts;AKerry

Zie Team Foundation-versiebeheeropdrachten gebruiken voor meer informatie over hoe TFVC de versionspecparseert.

Opties

Optie

Beschrijving

/changeset

Gebruik deze optie om een of meer specifieke wijzigingensets op te geven die u wilt negate.

/keepmergehistory

Deze optie heeft alleen effect als een of meer van de wijzigingensets die u terugrolt, een vertakking of samenvoegingswijziging bevatten. Geef deze optie op als u toekomstige samenvoegingen tussen dezelfde bron en hetzelfde doel wilt uitsluiten van de wijzigingen die u terugdraaien.

/lock

Geef deze optie op om te voorkomen dat andere gebruikers items inchecken of uitchecken totdat u klaar bent met het terugdraaien van alle bijbehorende wijzigingen. Zie Vergrendelingstypen begrijpen voor meer informatie.

Vergrendelingsopties:

  • None. Standaard. Er wordt geen vergrendeling toegepast. Als het bestand dat u terugrolt is vergrendeld, wordt met deze optie de vergrendeling verwijderd.
  • Checkin. Hiermee wordt een item vergrendeld totdat u de vergrendeling loslaat door een incheckbewerking uit te voeren. Andere gebruikers kunnen het opgegeven item uitchecken, maar de gebruikers kunnen geen revisies inchecken totdat de vergrendeling is verwijderd. U kunt een bestand dat al is vergrendeld, niet vergrendelen.
  • Checkout. Hiermee voorkomt u dat gebruikers een vergrendeld item inchecken of uitchecken totdat u de vergrendeling verwijdert door een incheckbewerking uit te voeren.

/login

Zie Opties gebruiken om te wijzigen hoe een opdracht functioneert voor meer informatie over deze optie.

/noprompt

Gebruik deze optie om dialoogvensters te onderdrukken die anders tijdens deze bewerking worden weergegeven.

/recursive

Geef deze optie op als u wilt dat de bewerking items in submappen bevat.

/toversion

Geef deze optie op om een bestand terug te keren naar de status ervan in een specifieke wijzigingenset. Wanneer u deze optie gebruikt, vergeeft u het effect van alle wijzigingensets die zijn toegepast sinds de versie die u opgeeft.

/version

Hiermee geeft u de huidige versie van de bestanden en mappen die u wilt terugdraaien.

Opmerkingen

De tf rollback opdracht negeert het effect van elke wijzigingenset die u opgeeft voor elk item dat u opgeeft. In de volgende tabel ziet u hoe de bewerking elk type wijziging onderhandelt.

Type wijziging teruggedraaid Type wijziging voor terugdraaien
toevoegen, vertakking of ongedaan maken verwijderen
Bewerken Bewerken
Codering Codering
naam wijzigen/verplaatsen naam wijzigen/verplaatsen
verwijderen Undelete
Samenvoegen Als u dit wijzigt, worden alle wijzigingen genegeerd die zijn samengevoegd in de huidige vertakking.

De volgende lijst bevat enkele voorbeelden van wijzigingen die het resultaat zijn van de rollback opdracht:

  • U kunt een wijzigingenset terugdraaien waarin een wijziging is aangebracht. De terugdraaibewerking veroorzaakt een terugdraaibewerking en een verwijderingswijziging .

  • U kunt wijzigingenset 521 terugdraaien waarin een wijziging in de bewerking is opgetreden. De terugdraaibewerking veroorzaakt een terugdraaibewerking en een wijziging die de wijziging in de wijzigingenset 521 onderhandelt.

  • In wijzigingenset 132 hebt u samengevoegd van $/BranchA/File1.txt naar $/BranchB/File1.txt. De wijzigingen in die samenvoeging bevatten wijzigingen in wijzigingensets 92 en 104. In wijzigingenset 162 rolt u de wijzigingenset 132 terug, wat resulteert in een terugdraaiwijziging en een wijziging in$/BranchB/File1.txt waarmee de wijzigingen in wijzigingensets 92 en 104 worden genegeerd.

Afsluitcodes

Er wordt een afsluitcode uit de volgende tabel weergegeven nadat u de tf rollback opdracht hebt uitgevoerd.

Afsluitcode Beschrijving
0 De bewerking heeft alle items teruggedraaid.
1 De bewerking heeft ten minste één item teruggedraaid, maar kan een of meer items niet terugdraaien.
100 De bewerking kan geen items terugdraaien.

Voorbeelden

In het volgende voorbeeld wordt het effect van wijzigingenset 23 op alle items die in die wijzigingenset zijn gewijzigd, genegeerd:

c:\workspace> tf rollback /changeset:C23

In het volgende voorbeeld wordt het effect van wijzigingenset 23 op het bestand a.txt ontkend:

c:\workspace> tf rollback /changeset:C23 a.txt

In het volgende voorbeeld wordt de inhoud van a.txt gewijzigd zodat deze overeenkomt met de versie die is ingecheckt met wijzigingenset 23:

c:\workspace> tf rollback /toversion:C23 a.txt

In het volgende voorbeeld wordt de inhoud van OurTeamProject aangepast aan de laatste wijzigingenset die is toegepast op of vóór middernacht op 31 augustus 2009:

c:\workspace> tf rollback /toversion:D08/31/2009 /recursive $/OurTeamProject/

Voorbeeldoptie /keepmergehistory

Wanneer u een wijzigingenset terugdraait die een vertakking of samenvoegingswijziging bevat, wilt u meestal dat toekomstige samenvoegingen tussen dezelfde bron en hetzelfde doel deze wijzigingen bevatten. U kunt de /keepmergehistory optie echter gebruiken als u toekomstige samenvoegingen tussen dezelfde bron en hetzelfde doel wilt uitsluiten van wijzigingensets die zijn opgenomen in een eerdere samenvoegbewerking. Voorbeeld:

  1. Op 30 juni 2009 voert u een volledige samenvoeging uit van alle items van $/BranchA/ naar $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    

    U controleert deze samenvoeging als onderdeel van de wijzigingenset 292.

  2. In juli kunt u verschillende wijzigingen aanbrengen in $/BranchA/Util.cs. Deze wijzigingen zijn opgenomen in wijzigingensets 297, 301 en 305.

  3. Op 1 augustus 2009 voegt u $/BranchA/Util.cs samen naar $/BranchB/Util.cs.

    c:\workspace> tf merge $/BranchA/Util.cs $/BranchB/Util.cs
    

    U controleert de wijziging als onderdeel van de wijzigingenset 314. Het resultaat van deze bewerking is dat de bewerkingen die u in wijzigingensets 297, 301 en 305 hebt aangebracht in $/BranchA/Util.cs nu ook worden toegepast op $/BranchB/Util.cs.

  4. Een week later realiseert u zich dat de wijzigingen die u in juli hebt aangebracht in $/BranchA/Util.cs niet geschikt zijn voor $/BranchB/Util.cs. U kunt de rollback opdracht gebruiken om deze wijzigingen te negeren. Wanneer u de rollback opdracht gebruikt om een samenvoegwijziging of vertakkingswijziging terug te draaien, moet u een beslissing nemen.

    • Als u wilt dat de wijzigingen die u in juli hebt aangebracht in $/BranchA/Util.cs opnieuw worden toegepast op $/BranchB/Util.cs in toekomstige samenvoegingen, voert u de volgende opdracht in:

      c:\workspace> tf rollback /changeset:314
      
    • Als u wilt dat de wijzigingen die u in juli hebt aangebracht in $/BranchA/Util.cs nooit opnieuw worden toegepast op $/BranchB/Util.cs in toekomstige samenvoegingen, voert u de volgende opdracht in:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Een paar weken later voegt u $/BranchA/ samen in $/BranchB/.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Als u de /keepmergehistory optie weglaat wanneer u terugdraait, is de samenvoegwijziging van toepassing op $/BranchB/Util.cs alle wijzigingensets die zijn toegepast op $/BranchA/Util.cs sinds wijzigingenset 292, inclusief wijzigingensets 297, 301 en 305. Met andere woorden, met de samenvoeging wordt de wijziging van het terugdraaien ongedaan maken.

    • Als u de /keepmergehistory optie bij het terugdraaien hebt opgenomen, is de samenvoegbewerking van toepassing op $/BranchB/Util.cs alle wijzigingensets die zijn toegepast op $/BranchA/Util.cs sinds wijzigingenset 292, met uitzondering van wijzigingenset 297, 301 en 305. Met andere woorden, de samenvoeging maakt de wijziging van het terugdraaien niet ongedaan. Daarom komt de inhoud op BranchA mogelijk niet overeen met de inhoud op BranchB.