[TFS] 於 TFS 強制簽入已被簽出的檔案

摘要:[TFS] 於TFS中強制簽入已被簽出的檔案

前言


相信有使用過Team Foundation Server(TFS)的人偶爾都會碰上一個問題,就是當專案中的某個開發者將檔案簽出後卻沒有簽入,或者開發者簽出檔案後沒有簽入就離職了等等情況下,會使的檔案被鎖定無法編輯的情況發生,當然TFS中簽出有三種鎖定類型如下:

  1. 未變更-保持限有的任何鎖定 : 當已簽出此檔案時,如有其他使用者要簽出與簽入檔案時不會受到影響
  2. 簽出-不允許其他使用者簽出與簽入 : 當已簽出此檔案時,如有其他使用者要簽出簽入檔案時將無法動作
  3. 簽入-允許其他使用者簽出但不允許簽入 : 當已簽出此檔案時,如有其他使用者要簽出簽入檔案時將只能作簽出動作

 

如當初簽出的時候是使用第一種類型的話是還不會影響很大,但是第二第三種的話就會影響到作業,接下來就來介紹一下碰到這種問題時可以使用甚麼方法來解決。

 

範例


方法一: 使用命令提示字元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.attrice.info/

http://www.dotblogs.com.tw/franma/archive/2010/11/12/19415.aspx

 

 


以上文章敘述如有錯誤及觀念不正確,請不吝嗇指教
如有侵權內容也請您與我反應~謝謝您 :)