tfs的撤銷簽出沒有圖形化界面,需要用命令行實現
1.查找那個人所用到的workspace,操作如下 tf workspaces /owner:zhz /Server:http://192.168.1.200:8080 命令結果:Server: http://192.168.1.200:8080/
workspace Owner Computer --------- ------ ------- RZ zhz RZ
2.撤銷他的簽出(強制),操作如下:tf undo /workspace:RZ(工作區名字);zhz(用戶名)$/xxx/xxxxx/aaa.csproj /Server:http://192.168.1.200:8080 具體操作可以查看命令幫助:tf /?
注:最好要有"管理工作區"權限(團隊資源管理器,服務器右鍵->tfs設置->安全性),或者用tf perm命令設置tf:undother權限
Undo 命令
從工作區移除掛起的更改。
必需的權限
若要使用 undo 命令,您必須是指定工作區的所有者或者將全局“管理工作區”權限設置爲“允許
tf undo [/workspace:workspacename[;workspaceowner]]
[/server:servername] [/recursive] itemspec [/noprompt]
參數
說明 |
|
workspacename |
用戶提供的 /workspace 選項的值。 |
workspaceowner |
指定創建工作區的用戶的名稱。 |
servername |
用戶提供的 /server 選項的值。示例:teamfoundation2。 |
itemspec |
標識要從中移除掛起的更改的文件或文件夾。 |
選項 |
說明 |
/workspace |
指定要在其中撤銷掛起更改的工作區的名稱。如果未指定此選項,而您正在從已添加到工作區的目錄運行該命令,則使用當前工作區。 |
/server |
標識 Team Foundation Server。如果從未映射到工作區的目錄調用命令,則此選項是必需的。 |
/recursive |
根據 itemspec 以遞歸方式撤銷更改。 |
/noprompt |
取消顯示需要您輸入的任何提示。 |
備註
undo 命令檢查具有正在撤銷的掛起編輯的文件是否已在磁盤上進行修改。如果檢測到修改,不帶 /noprompt 的 undo 命令將顯示一個提示,詢問是否繼續撤銷更改。可以響應“Yes”、“No”或“All”。
undo 命令將所有簽出文件返回到未修改的只讀狀態。它將丟棄對文件和文件夾的所有掛起的更改,並將項還原到 Team Foundation 版本控制 服務器版本。
undo 命令移除簽入及簽出鎖定,以便用戶在自己的工作區簽出文件並對其做出掛起的更改。
如果使用 undo 命令撤銷其他用戶計算機上掛起的更改,則必須在該工作區中執行 get 操作以更新本地磁盤。不僅必須運行 get,還必須對已撤銷的文件運行 get /all,以便爲被編輯文件下載正確的內容。
示例
下面的示例移除當前工作區中對 314.cs 所做的所有掛起的更改。
c:"projects>tf undo 314.cs
下面的示例移除 c:"projects 文件夾及其所有子文件夾中所有掛起的更改。
c:"projects>tf undo /recursive c:"projects
下面的示例移除 Ivan 的 WS_Juan 工作區中指定文件的掛起的更改。
tf undo /workspace:WorkSpaceSample;所在的域"用戶名:用戶名序號 $/路徑/文件名
WorkSpaceSample;所在的域"用戶名
Undelete 命令
若要使用 undelete 命令,您必須將“簽出”權限設置爲“允許”。如果在 /lock 選項中包含一個非 none 值,則您必須將“鎖定”權限設置爲“允許”。此外,您必須是工作區的所有者或者將全局“管理工作區”權限設置爲“允許”。 tf undelete [/noget] [/lock:(none|checkin|checkout)] [/newname:name]
[/recursive] itemspec[;deletionID]
參數
參數 |
說明 |
name |
用戶提供的 /newname 選項的值。可以指定一個本地或服務器路徑。 |
itemspec |
標識要撤消刪除的文件或文件夾 |
deletionID |
指定一個唯一的標識符,該標識符區分多個具有相同名稱的已刪除項。 |
選項 |
說明 |
/noget |
將已刪除的項還原至工作區,然後,掛起簽入操作,還原服務器上的項,但並不立即將該項的物理副本檢索到磁盤。 |
/lock |
防止其他用戶簽入或簽出指定文件。鎖定選項: · None 默認值。不應用鎖定。 · Checkin 其他用戶可以簽出指定的項,但在您執行簽入前,他們無法簽入對鎖定文件的修訂。如果任何其他用戶已鎖定任何一個指定的項,則鎖定操作將失敗。 · Checkout 在您執行簽入從而釋放鎖之前,防止其他用戶簽入或簽出任何一個指定的項。如果任何其他用戶已鎖定任何一個指定的項,則鎖定操作將失敗。 |
/newname |
在還原項時對其重命名。 |
/recursive |
還原指定目錄的所有文件和子文件夾。 |
備註
tf 命令行功能的 Undelete 命令爲還原掛起的簽入操作安排指定的文件或文件夾。它還將指定的項從服務器檢索到本地磁盤,除非您顯式包含 /noget 選項。
當具有相同名稱的文件或文件夾從同一個服務器文件夾中被刪除時,您必須包含 deletionID 參數的值,以指示您要還原哪個(哪些)已刪除的項。可以使用 dir 命令來獲取 deletionID。
若要將一個已刪除項還原到一個服務器文件夾(在該文件夾中,某個具有相同名稱的項已存在或是掛起的新項),可以使用 /newname 選項爲撤消刪除的項指定一個新名稱。使用 /newname 選項一次只能撤消刪除一個項。
如果要在還原文件之後對其進行更改,可以照常使用 checkout 命令簽出文件進行編輯。
當 itemspec 指定了一個文件夾時,默認情況下,Team Foundation 將還原該文件夾中的所有文件和子文件夾以及這些子文件夾所包含的文件。如果不想還原文件夾中的所有項,則必須首先撤消刪除該文件夾及其項,然後刪除不想保留的項。
示例
下面的示例將 314.cs 從其被刪除之處還原到服務器文件夾中,並在當前工作區中檢索最新版本的只讀副本。
C:"projects>tf undelete c:"math"314.cs
下面的示例顯示服務器上所有被刪除過多次的項的刪除 ID。
c:"projects>tf dir $/ /deleted
· 示例輸出:
$/projects/math/314.cs;X10
$/projects/math/314.cs;X11
下面的示例將 314.cs 的 X11 版本從其被刪除之處還原至服務器文件夾,並在當前工作區中檢索最新版本的只讀副本。
Rename 命令(Team Foundation 版本控制)
rename 命令更改文件或文件夾的名稱或路徑。可以使用 rename 命令或者別名 move 或 ren 將文件或文件夾移至新位置。
若要使用 rename 命令,您必須將“簽出”權限設置爲“允許”。
tf rename [/lock:(none|checkout|checkin)] olditem newitem
參數
參數 |
說明 |
舊項 |
要重命名的文件或文件夾的原始名稱和路徑。可以指定本地工作區路徑(如 C:"myfiles"314.cs)或 Team Foundation 版本控制 服務器路徑(如 $/myfiles/314.cs)。 |
新項 |
文件或文件夾的新名稱。可以使用此參數來指定不同的本地路徑位置或 Team Foundation 版本控制 服務器路徑位置。 |
選項 |
說明 |
/lock |
包含此選項可防止其他用戶簽入或簽出指定的項。如果未指定此選項,則不會改變項的現有鎖定狀態。 鎖定選項: · None 不應用鎖定。 · Checkin 其他用戶可以簽出指定的項,但在您執行簽入從而釋放鎖之前,他們無法簽入對鎖定文件的修訂。如果任何其他用戶已鎖定任何一個指定的項,則鎖定操作將失敗。 · Checkout 在您執行簽入從而釋放鎖之前,防止其他用戶簽入或簽出任何一個指定的項。如果任何其他用戶已鎖定任何一個指定的項,則鎖定操作將失敗。 |
備註
可以使用 tf 命令行實用工具的 rename 命令來移動或重命名工作區中受版本控制的項。可以使用 rename 命令通過指定通配符來移動多個文件。重命名多個受版本控制的文件或文件夾這一功能只能通過命令行執行。
可以使用 Rename 命令執行以下操作:
· 將 olditem 重命名爲 newitem,例如 tf rename 314.cs 315.cs。
· 通過提供一個與 olditem 具有不同路徑的 newitem,將 olditem 移至 Team Foundation 版本控制 服務器中的新位置,例如 tf rename 314.cs .."newdir"314.cs。
如果您提供的 newitem 指定了不存在的文件夾,rename 命令會創建目標文件夾。如果 newitem 是文件夾,則 olditem 會成爲 newitem 的子級。
在以下情況,您無法重命名項:
· 在同一工作區中籤入之前,已將該項刪除。
· 新的名稱已存在於 Team Foundation 版本控制 服務器中且不是文件夾。
· 掛起簽入某項時,已添加或重命名該項,或者已經爲其創建了分支。
· 項在工作區中被映射,但在本地磁盤上不可用。
· 項已掩蔽。
如果與項名稱相同的另一個文件已被添加了掛起的簽入,則您可以重命名該項;但您無法重命名已分支但尚未簽入的項。當您重命名具有掛起編輯的文件時,將保留這些編輯。
顯式映射的項如果不首先更改映射則無法重命名。例如,如果存在 $/ProjectX/MyApp 到 c:"MyApp 的工作文件夾映射,則不能重命名 MyApp。可以重命名 MyApp 下的項,但不能重命名 MyApp 本身。
示例
下面的示例將 314.c 的名稱更改爲 1254.c。
c:"projects>tf rename 314.c 1254.c
下面的示例將 314.c 重命名爲 1254.c 並將其移至 newdir 文件夾。
c:"projects>tf rename 314.c .."newdir"1254.c
下面的示例將 Form1.vb 的名稱更改爲 MainPage.vb 並向其應用鎖定。
c:"projects>tf rename Form1.vb MainPage.vb /lock:checkin
Destroy 命令
使用 tf destroy 命令可以在 Team Foundation 版本控制中銷燬或永久刪除受版本控制的文件。
銷燬操作無法撤消。不得銷燬仍然需要的文件。有時,您必須清理版本控制系統。例如,如果某些文件感染了計算機病毒,則必須從版本控制中永久移除這些文件。
運行不帶 /keephistory 選項的 tf destroy 之前,建議您先刪除要銷燬的文件。
刪除文件後,可以同步 Team Foundation 倉庫。否則該倉庫將不與被銷燬的項同步。
必需的權限
若要使用 destroy 命令,您必須屬於“Team Foundation Administrators”安全組。
tf destroy [/keephistory] <itemspec1>[;<versionspec>][<itemspec2>…<itemspecN>]
[/stopat:<versionspec>] [/preview] [/startcleanup] [/noprompt]
參數
參數 |
說明 |
||
itemspec1 [itemspec2…itemspecN] |
指定要銷燬的文件或文件夾的服務器路徑。使用多個 itemspec 值可以刪除多個項。例如,tf destroy $/TeamProject1 $/teamProject2 $/TeamProject3。 不支持本地路徑。 |
||
versionspec |
爲 /keephistory 或 /stopat 選項提供一個版本(如 C58)。允許的值爲日期、提示或特定變更集。 |
||
選項 |
說明 |
||
/keephistory |
可選。指定在銷燬文件內容時保留文件的歷史記錄。此選項不能與 /preview 選項一起指定。 |
||
/stopat |
可選。僅當同時指定了 /keephistory 時纔可以使用。 指定文件的文件版本,文件的歷史記錄將從該版本開始保留。 /stopat 的默認版本爲某個項的最新簽入版本的提示 (T)。 無法使用標籤或工作區 versionspec 值爲 /stopat 選項指定一個項。 |
||
/preview |
在“命令提示符”窗口中顯示要銷燬的文件。當在預覽模式下運行 tf destroy 時,文件實際上並未銷燬。
|
||
/startcleanup |
強制文件內容清理過程在內容刪除結束後立即開始。如果用戶未指定 /startcleanup,則只有當數據庫維護操作清理完 Team Foundation Server 不再引用的所有文件時,纔會執行銷燬內容清理過程。默認情況下,清理過程計劃每天運行一次。 |
||
/noprompt /i |
指定文件銷燬爲非交互式操作。/i 是 /noprompt 的別名。 |
備註
在使用 tf destroy 銷燬版本控制文件時,Team Foundation Server 的應用層接收銷燬請求並檢查您是否爲“Team Foundation Administrators”安全組的成員。如果您不是該組的成員,系統會顯示一個錯誤消息對話框,告知您沒有足夠的權限來執行該操作。
在系統驗證您的權限後,就會運行 destroy 命令。此命令會刪除所有文件引用、擱置集和掛起的更改。在下一次清理 Team Foundation Server 不再引用的內容時,將執行實際銷燬文件的操作(這是一個永久刪除操作)。您還可以指定 /startcleanup 選項,以便在 tf destroy 運行後立即清理文件。
如果在不指定 /i 和 /preview 的情況下運行 tf destroy,則系統對於每個 filespec 值都會顯示一個控制檯 Yes 或 No 提示。另外,還可以指定 Yes to all。如果未指定 /keephistory,則會顯示交互式文本提示,警告您注意掛起的更改(如果這些更改存在)。該交互式文本指向 /preview,您可以藉此獲取有關這些更改的更多信息。如果指定 /keephistory,則還會顯示 Yes、No 或 All 文本提示。如果選擇 Yes 或 All,則銷燬過程開始執行,並且銷燬項的服務器路徑會顯示在“命令提示符”窗口中。
Destroyed: <serverItem1>
Destroyed: <serverItem2>
Destroyed: …
如果將 versionspec 值指定爲提示,則服務器路徑(包括刪除 ID)會顯示在“命令提示符”窗口中。例如,X123 可能顯示在“命令提示符”窗口中。
如果使用 /preview 選項,則文件未銷燬,但命令行文本會顯示要銷燬的文件。例如,如果在命令行鍵入 tf destroy /preview $/Test1/MyProject/MyProject/Program.cs,則命令窗口會顯示以下文本:
已銷燬: $/Test1/MyProject/MyProject/Program.cs
但是,由於使用了 /preview 選項,因此該文件實際上並未銷燬。
其他版本控制操作上的 /keephistory 的效果
如果指定 /keephistory 選項以保留銷燬文件的歷史記錄,則會將文件視爲由以下 Team Foundation 版本控制操作銷燬:
· 更改內容 如果試圖更改已銷燬文件的內容(如編輯或分支),則系統會發出一個錯誤消息,指出內容已銷燬。
· 分支、合併或取消擱置 如果試圖對已銷燬的項進行分支、合併或取消擱置,則系統會發出一個錯誤消息,指出這些項的內容已銷燬。
銷燬先前刪除的項
如果某個項已刪除,則會將一個刪除 ID 附加到該項並導致文件名更改。
示例
說明
下面的示例演示如何永久刪除文件 a.cs。
代碼
C:"pi"ws1>tf destroy $/proj/pi/a.cs
說明
下面的示例演示如何刪除文件夾 aFolder。請在命令行鍵入:
代碼
C:"tf delete $/MyTeamProject/aFolder
說明
若要銷燬已刪除的項 aFolder,必須在命令行鍵入:
代碼
tf destroy $/MyTeamProject/sFolder;x123
其中 x123 爲刪除 ID。