摘要:[TFS] 於TFS中強制簽入已被簽出的檔案
前言
相信有使用過Team Foundation Server(TFS)的人偶爾都會碰上一個問題,就是當專案中的某個開發者將檔案簽出後卻沒有簽入,或者開發者簽出檔案後沒有簽入就離職了等等情況下,會使的檔案被鎖定無法編輯的情況發生,當然TFS中簽出有三種鎖定類型如下:
- 未變更-保持限有的任何鎖定 : 當已簽出此檔案時,如有其他使用者要簽出與簽入檔案時不會受到影響
- 簽出-不允許其他使用者簽出與簽入 : 當已簽出此檔案時,如有其他使用者要簽出簽入檔案時將無法動作
- 簽入-允許其他使用者簽出但不允許簽入 : 當已簽出此檔案時,如有其他使用者要簽出簽入檔案時將只能作簽出動作
如當初簽出的時候是使用第一種類型的話是還不會影響很大,但是第二第三種的話就會影響到作業,接下來就來介紹一下碰到這種問題時可以使用甚麼方法來解決。
範例
方法一: 使用命令提示字元TFS UNDO命令
首先要先檢查一下在VS安裝的資料夾中有沒有 TF.exe 檔案,路徑如下:
C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
或
C:\Program Files\Microsoft Visual Studio 10.0\Common7\IDE
如果有的話就繼續以下步驟
開始 > 執行 > 輸入 CMD > 開啟命令提示字元視窗
輸入: CD C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\IDE
先將目錄切換到TF.exe的資料夾下,接著可以輸入以下三種命令取得相關資訊:
1.查詢相關聯的工作區
輸入: tf workspaces /owner:[Account] /server:http://[ServerDomainl]:[Port]/tfs/[項目集合名稱]/
例如: tf workspaces /owner:arvin /server:http://test.tfs.com.tw/:8080/tfs/專案部/
完成後會返回此使用者項目中的工作區清單。
2.查詢變更的狀態
當知道工作區名稱後就可以更進一步的查詢該使用者的變更狀態,
輸入: tf status /server:[ServerDomain]:[Port]/tfs/[項目集合名稱]/ /workspace:* /user:[Account]
例如: tf status /server:http://test.tfs.com.tw:8080/tfs/專案部/ /workspace:* /user:arvin
完成後即會返回變更狀態紀錄。
3.強制簽入
從第二步驟可以發現 test1.aspx 這隻程式已經被簽出編輯,再來要將此程式強制回覆原始的變更,
輸入:tf undo /workspace:[工作區名稱];[Account] [TFS專案路徑+檔案名稱]/server:[ServerDomain]:[Port]/tfs/[項目集合名稱]/
例如:tf undo /workspace:ARVIN-VAIO;arvin $/TestProject/test.aspx /server:http://test.tfs.com.tw:8080/tfs/專案部/
經過以上三個步驟,就可以將已簽出的檔案強制簽入啦。
方法二: 使用 Team Foundation Sidekicks
Team Foundation Sidekicks 是VS的一個第三方工具套件,使用此工具的TFS帳號必須要有一定的權限,以下簡單說明使用方法。
首先至 http://www.attrice.info/downloads/index.htm 下載 Sidekick 安裝檔,關閉VS安裝此工具,安裝完成後在VS工具列的「工具」標簽中會多出一個「Team Foundation Sidekick」選項,選擇到該選項內的「Status Sidekick」選項。
選擇後會跳出一個狀態搜尋視窗,依照需要輸入的條件查詢後即可查出被簽出的那隻程式檔案。
接下來點選到 test1.aspx 此列,點選上方返回圖樣的按鈕後即可以將此程式簽入TFS。
第二種方式透過介面就可以直接強制簽入檔案,也算是一種非常簡單的方法,以上兩種強制簽入的方法就讓各位讀者決定要使用哪一種方式嘍。
參考資料
http://www.dotblogs.com.tw/franma/archive/2010/11/12/19415.aspx
以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)