Megosztás a következőn keresztül:


Visszaállítási parancs (Team Foundation verziókövetés)

Azure DevOps Services | Azure DevOps Server 2022 – Azure DevOps Server 2019

Visual Studio 2019 | Visual Studio 2022

A Team Foundation Version Control (TFVC) tf rollback paranccsal visszaállíthatja egy vagy több módosításkészlet hatását egy vagy több verzió által szabályozott elemre. Ez a parancs nem távolítja el a módosításkészleteket egy elem verzióelőzményeiből. Ez a parancs ehelyett függőben lévő módosításokat hoz létre a munkaterületen, amelyek nem befolyásolják a megadott módosításhalmazok hatásait.

Előfeltételek

A parancs használatához engedélyeznie kell az olvasási, kivételi és Bejelentkezés engedélyeket. További információ: Alapértelmezett TFVC-engedélyek.

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

Paraméterek

Argumentumok

Argumentum

Leírás

<ChangesetFrom>~<ChangesetTo>

Ezzel az /changeset argumentummal megadhatja azokat a módosításkészleteket, amelyeket vissza szeretne állítani. A módosítások a következő módokon adhatók meg:

  • Egyetlen változáskészlet, például /changeset:C11
  • Számos változáskészlet, például /changeset:C7~C20
  • Egy dátum, például /changeset:D09/30/09
  • Dátumtartomány, például /changeset:D09/23/09~D10/07/09
  • A legutóbbi módosításkészlet, /changeset:Tip vagy /changeset:T

<ItemSpec>

Ezen argumentum használatával megadhat egy vagy több olyan elemet, amelyet vissza szeretne állítani. Ha ezt a /toversion lehetőséget használja, meg kell adnia ezt az argumentumot.

További információ arról, hogy a TFVC hogyan elemzi az elemek specifikációit: A Team Foundation verziókövetési parancsainak használata.

Feljegyzés

Több itemspec argumentumot is megadhat.

<VersionSpec>

A felhasználó által megadott érték mind a /version beállításhoz, mind a beállításhoz /toversion .

Ezzel az /toversion argumentummal visszaállíthat egy fájlt egy adott változáskészlet állapotára. A verziót a következő módokon adhatja meg:

  • Egyetlen változáskészlet, például /toversion:C32
  • Egy éjféli dátum, például /toversion:D06/19/09
  • Dátum és idő, például /toversion:D06/19/09T14:32
  • Egy címke, például /toversion:LTestLabel
  • A munkaterület aktuális könyvtárra leképezett verziója, /toversion:W
  • Egy adott munkaterület verziója, például /toversion:WResolveRIConflicts;AKerry

További információ a TFVC elemzési módjáról: A Team Foundation verziókövetési versionspecparancsainak használata.

Beállítások

Beállítás

Leírás

/changeset

Ezzel a beállítással megadhat egy vagy több olyan módosítási halmazt, amelyet el szeretne tagadni.

/keepmergehistory

Ez a beállítás csak akkor lép érvénybe, ha a visszagördülő módosítások közül egy vagy több elágaztatási vagy egyesítési módosítást tartalmaz. Ezt a beállítást akkor adja meg, ha azt szeretné, hogy a jövőbeli egyesítések ugyanabban a forrásban és ugyanazon célban jelenjenek meg, és kizárják a visszaállítandó módosításokat.

/lock

Ezzel a beállítással megakadályozhatja, hogy más felhasználók be- vagy kijelentkezjenek az elemekbe, amíg be nem fejeződik az összes kapcsolódó módosítás visszaállítása. További információ: A zárolási típusok ismertetése.

Zárolási beállítások:

  • None. Default (Alapértelmezett): Nincs zárolás alkalmazva. Ha a visszaállított fájl zárolva van, ez a beállítás eltávolítja a zárolást.
  • Checkin. Zárol egy elemet, amíg fel nem oldja a zárolást egy bejelentkezés végrehajtásával. A többi felhasználó ki tudja venni a megadott elemet, de a felhasználók a zárolás eltávolításáig nem tudják beadni a változatokat. A már zárolt fájlokat nem zárolhatja.
  • Checkout. Megakadályozza, hogy a felhasználók be- vagy kijelentkeztessenek egy zárolt elemet, amíg el nem távolítja a zárolást a bejelentkezéssel.

/login

Erről a beállításról további információt a parancsok működésének módosítására szolgáló beállítások használata című témakörben talál.

/noprompt

Ezzel a beállítással letilthatja a művelet során egyébként megjelenő párbeszédpaneleket.

/recursive

Ezt a beállítást akkor adja meg, ha azt szeretné, hogy a művelet almappákban lévő elemeket tartalmazzon.

/toversion

Ezzel a beállítással visszaállíthat egy fájlt egy adott változáskészlet állapotára. Ha ezt a beállítást használja, a megadott verzió óta alkalmazott összes módosítási halmaz hatását nem fogja befolyásolni.

/version

A visszaállítani kívánt fájlok és mappák aktuális verzióját adja meg.

Megjegyzések

A tf rollback parancs nem módosítja az egyes megadott elemekhez megadott módosításkészletek hatását. Az alábbi táblázat azt sorolja fel, hogy a művelet hogyan hárítja el az egyes módosításokat.

A visszagördített módosítás típusa A visszaállítási módosítás típusa
hozzáadás, ág vagy undelete törlés
Szerkesztése Szerkesztése
Kódolás Kódolás
átnevezés/áthelyezés átnevezés/áthelyezés
törlés Undelete
Egyesítése A módosítás az aktuális ágba egyesített módosításokat nem módosítja.

Az alábbi lista néhány példát mutat be a rollback parancsból eredő változásokra:

  • Visszaállíthat egy módosítási halmazt , amelyben módosítás történt. A visszaállítási művelet visszaállítási és törlési változást okoz.

  • Visszaállíthatja az 521-et, amelyben módosítás történt. A visszaállítási művelet egy visszaállítási módosítást és egy olyan módosítást okoz, amely nem módosítja az 521-ben végrehajtott módosításokat.

  • A 132-ben egyesítette a $/BranchA/File1.txt és a $/BranchB/File1.txt értékeket. Az egyesítés módosításai közé tartoznak a 92-ben és a 104-ben végrehajtott módosítások. A 162-ben vissza kell állítania a 132-s módosítási halmazt, amely visszaállítást és $/BranchB/File1.txt módosítást eredményez, amely a 92-ben és a 104-ben nem módosítja a módosításokat.

Kilépési kódok

A parancs futtatása után megjelenik a következő táblázatból származó kilépési tf rollback kód.

Kilépési kód Leírás
0 A művelet sikeresen visszaállított minden elemet.
0 A művelet sikeresen visszaállított legalább egy elemet, de egy vagy több elemet nem tudott visszagörgetni.
100 A művelet nem tudott elemeket visszagörgetni.

Példák

Az alábbi példa nem befolyásolja a 23. módosítási halmaz hatását az adott változáskészletben módosított összes elemre:

c:\workspace> tf rollback /changeset:C23

Az alábbi példa nem befolyásolja a 23. módosítási halmaz hatását a fájl a.txt:

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

Az alábbi példa úgy módosítja a a.txt tartalmát, hogy az megfeleljen a 23.módosításkészlettel beadott verziónak:

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

Az alábbi példa úgy módosítja a OurTeamProject tartalmát, hogy megfeleljen a 2009. augusztus 31-én éjfélkor vagy éjfél előtt alkalmazott utolsó módosításkészletnek:

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

Példa /keepmergehistory beállítás

Amikor egy elágaztatást vagy egyesítési módosítást tartalmazó változáskészletet visszaállít, általában azt szeretné, hogy az ugyanazon forrás és ugyanazon cél közötti jövőbeli egyesítések belefoglalják ezeket a módosításokat. Azonban akkor is használhatja ezt a /keepmergehistory lehetőséget, ha azt szeretné, hogy az ugyanazon forrás és ugyanaz a cél közötti jövőbeli egyesítések kizárják a korábbi egyesítési műveletbe belefoglalt módosításhalmazokat. Példa:

  1. 2009. június 30-án a $/BranchA/ és a $/BranchB/ elemek teljes egyesítését hajtja végre.

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

    Ezt az egyesítést a 292-as módosítási halmaz részeként kell beadni.

  2. Júliusban számos módosítást hajt végre a $/BranchA/Util.cs. Ezek a változások a 297-ben, a 301-ben és a 305-ös verzióban jelennek meg.

  3. 2009. augusztus 1-jén a $/BranchA/Util.cs egyesítését $/BranchB/Util.cs értékre kell egyesítenie.

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

    A módosítást a 314-as módosítási halmaz részeként kell beadni. A művelet eredménye, hogy a 297-ös, 301-ös és 305-ös módosítások $/BranchA/Util.cs módosításait a $/BranchB/Util.cs is alkalmazza.

  4. Egy héttel később rájön, hogy a $/BranchA/Util.cs júliusi módosításai nem megfelelőek a $/BranchB/Util.cs esetében. Ezeket a módosításokat a rollback parancs használatával tagadhatja le. Ha a rollback paranccsal visszaállít egy egyesítési vagy ágmódosítást, döntést kell hoznia.

    • Ha azt szeretné, hogy a $/BranchA/Util.cs júliusban végrehajtott módosításait újra alkalmazza a $/BranchB/Util.cs későbbi egyesítések során, írja be a következő parancsot:

      c:\workspace> tf rollback /changeset:314
      
    • Ha azt szeretné, hogy a júliusi $/BranchA/Util.cs módosításai soha ne legyenek újra alkalmazva $/BranchB/Util.cs a jövőbeli egyesítések során, írja be a következő parancsot:

      c:\workspace> tf rollback /changeset:314 /keepmergehistory
      
  5. Néhány héttel később a $/BranchA/ egyesítését $/BranchB/-be kell egyesítenie.

    c:\workspace> tf merge $/BranchA $/BranchB
    
    • Ha a visszaállításkor nem tette meg a /keepmergehistory beállítást, az egyesítési módosítás a $/BranchB/Util.cs minden olyan módosítási halmazra vonatkozik, amelyet a 292-as módosítási etet óta a $/BranchA/Util.cs-ra alkalmaztak, beleértve a 297-et, a 301-et és a 305-öt is. Más szóval az egyesítés visszavonja a visszaállítási módosítást.

    • Ha a visszagördítéskor is szerepelt a /keepmergehistory beállítás, az egyesítési művelet a $/BranchB/Util.cs az $/BranchA/Util.cs 292-as módosítási halmaz óta alkalmazott összes változáskészletre vonatkozik, a 297-ös, a 301-ös és a 305-ös módosítások kivételével. Más szóval az egyesítés nem vonja vissza a visszaállítási módosítást. Ezért előfordulhat, hogy a BranchA tartalma nem egyezik a BranchB tartalmával.