應用情境:
在一項目中因為一個同事去了其它項目組同時又有未簽入的檔案,通過電話溝通得知已經是最新檔案,但是由於臨一項目組不在本地,同時也不想使用TFS的遠端存取,那麼有兩種方法可以讓其他同事繼續開發:其一是離線進行開發,這樣可以開發,但是檔案就不能簽入,項目組的其它人只能通過檔案copy的方式擷取最新版本,就失去了使用tfs進行原始程式碼控制的意義;其二是使用tfs的命令列工具進行強制撤銷簽出,這樣檔案就處於簽入狀態了。在本文中就是用第二種方法來解決這個問題,既省去了讓同事跑回來簽檔案的無謂消耗,又使其他同事能繼續開發。下面我們切入正題。
解決思路:
可以通過TFS的命令列工具,調用undo命令進行強制撤銷簽出。MSDN對Undo命令的描述如下:
undo 命令檢查具有正在撤消的掛起編輯的檔案是否已在磁碟上進行修改。 如果檢測到修改,不帶 /noprompt 的 undo 命令將顯示一個提示,詢問是否繼續撤消更改。 可以響應“Yes”、“No”或“All”。
undo 命令將所有簽出檔案返回到未修改的唯讀狀態。 它將丟棄對檔案和檔案夾的所有暫止的變更,並將項還原到 Team Foundation 版本控制 伺服器版本。
undo 命令移除簽入及簽出鎖定,以便使用者在自己的工作區簽出檔案並對其做出暫止的變更。
如果使用 undo 命令撤消其他使用者電腦上暫止的變更,則必須在該工作區中執行 get 操作以更新本地磁碟。 不僅必須運行 get,還必須對已撤消的檔案運行 get /all,以便為被編輯檔案下載正確的內容。
感興趣的讀者可以參考:
http://msdn.microsoft.com/zh-cn/library/c72skhw4.aspx
具體步驟:
1、使用TF workspaces命令查看簽出檔案的人員使用的工作區
2、是用TF undo命令進行強制撤銷簽出
示範:
1、項目中有同事簽出了檔案,如1所示:
圖1 簽出了檔案
2、使用tf comman,可以在開始程式裡開啟,2所示:
圖2 vs command
也可以在路徑:C:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\下開啟,注意這裡的路徑和 $\command7\IDE的路徑有所不同。
3、使用tf workspaces查看工作區,如所示:
輸入的命令列是:
tf workspaces /owner:rareserver\limingfei /computer:*
命令解釋:
Tf workspaces /owner:網域名稱\使用者名稱 /computer:*
可以查看到工作區有兩個:songfx和win-lmfpc,這裡我們確認是win-lmfpc
4、使用tf undo命令進行強制撤消簽出,輸入命令:
tf undo /workspace:win-lm
fpc;rareserver\limingfei $/POSManagement/SourceCode/RareBusinessServer/NexusLibr
ary/Models/OilCanInfo.cs
命令解釋:
tf undo /workspace:工作區;網域名稱\使用者名稱 $檔案路徑/檔案名稱.副檔名
有關檔案路徑可以在Team Explorer的source location裡取到,執行命令後的介面如下:
在命令列介面已經提升操作成功了,回到tfs的Team Explorer介面確認一下,點擊[重新整理] 按鈕,重新整理一下,效果如所示:
中有一個檔案已經撤消簽出了,重複以上步驟把另一個檔案也可以強制撤銷簽出。
實際上我們使用undo命令還可以對某個檔案夾和子檔案夾的所有更改進行操作。