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 versionspec
parancsainak 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:
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.
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.
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.
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 arollback
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
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.