Lock 命令

鎖定或解除鎖定檔案或資料夾,以拒絕或還原使用者執行以下工作的權限:簽出項目以在不同的工作區內進行編輯,或從不同的工作區簽入對某項目的暫止變更。

必要的使用權限

若要使用 lock 命令,您必須將 [鎖定] 權限設定為 [允許]。 如果您沒有使用者工作區的 [寫入] 權限,則必須將 [解除鎖定其他使用者的變更] 權限設定為 [允許],才能移除由其他使用者所持有的鎖定。 如需詳細資訊,請參閱Team Foundation Server 使用權限

tf lock itemspec /lock:(none|checkout|checkin) 
[/workspace:workspacename] [/recursive] [/login:username,[password]] [/collection:TeamProjectCollectionUrl] 

參數

引數

描述

itemspec

辨別要鎖定或解除鎖定的檔案或資料夾。 如需 Team Foundation 如何剖析項目規格以判斷哪些項目位於範圍內的詳細資訊,請參閱命令列選項

注意事項注意事項
您可以指定一個以上的 Itemspec 引數。

workspacename

/workspace 選項的使用者提供值。

username

提供 /login 選項的值。 您可以將使用者名稱值指定成網域\ 使用者名稱或使用者名稱的格式。

TeamProjectCollectionUrl

Team 專案集合的 URL (例如 http://myserver:8080/tfs/DefaultCollection),該集合包含您要鎖定或解除鎖定的檔案或資料夾。

選項

描述

/lock

指定鎖定類型或移除項目的鎖定。 如需詳細資訊,請參閱認識鎖定類型

鎖定選項:

  • None

    移除項目的鎖定。

  • Checkin

    啓用可在所有的工作空間中簽出及編輯某項目,但防止使用者在指定的 /workspace 外對該項目簽入變更,除非簽入鎖定有明確釋出。 如果指定的項目在其他工作區中鎖定,則鎖定作業就會失敗。

  • Checkout

    防止使用者簽入或簽出指定項目,除非鎖定有明確釋出。 如果使用者已鎖定任一指定項目,或者如果任一項目有暫止的變更存在,鎖定作業就會失敗。

/workspace

指定另一個要在其中套用鎖定的工作區名稱。 根據預設,會在目前使用的工作區中套用鎖定。

/login

指定使用者名稱和密碼,以便透過 Visual Studio Team Foundation Server 驗證使用者。

/collection

指定 Team 專案集合。

備註

您可以使用鎖定命令暫時凍結項目的 Team Foundation 版本控制伺服器版本,如此就可以簽入暫止的變更,而不必解決任何合併衝突。 如果想要永久避免存取 Team Foundation 版本控制伺服器中的項目,應該改用 Permission 命令

注意事項注意事項

為了對小組組員表示尊重,如果可能,請在項目上套用鎖定時通知小組組員,說明您進行這項作業的原因,並評估您計劃何時要移除該鎖定。

如需如何尋找 tf 命令列公用程式的詳細資訊,請參閱 Tf 命令列公用程式命令

如何鎖定項目

鎖定項目的方法包括使用鎖定命令,或在使用數個其他的 tf 命令列公用程式命令時指定鎖定選項:

如果是加入和分支作業,鎖定會置於將建立新項目的命名空間中。 如果是重新命名時放置鎖定,則會同時套用至舊的和新的命名空間。 如需詳細資訊,請參閱 鎖定和解除鎖定資料夾或檔案

鎖定類型

Team Foundation 提供兩種鎖定類型:checkincheckout

簽入鎖定的限制比簽出鎖定少。 在您套用簽入鎖定後,使用者可以繼續在其他工作區中對該項目進行本機變更。 這些變更無法簽入,除非您從工作區明確移除簽入鎖定。

簽出鎖定的限制比簽入鎖定多。 在您對版本控制的檔案或資料夾套用簽出鎖定後,使用者就不能簽出檔案進行編輯,也不能簽入已存在的暫止變更。 如果某項目目前有任何的暫止變更,您就無法對其取得簽出鎖定。

如需何時套用簽出鎖定以及何時套用簽入鎖定的詳細資訊,請參閱認識鎖定類型

鎖定的運作方式

如果在已簽出的檔案上進行鎖定,該檔案的狀態就會修改為包含新的鎖定類型。 如果檔案沒有簽出,則工作區的暫止變更集中就會加入「鎖定」變更。 與 checkout 命名不同,lock 不會自動將檔案設為可編輯。

資料夾的鎖定是隱含遞迴。 在鎖定某個資料夾時,除非想對具有簽入鎖定之資料夾中的檔案,套用更嚴格的簽出鎖定,否則您不需要鎖定它所包含的檔案。

解除鎖定項目

您可以使用 none 選項解除鎖定已鎖定的項目。 此外,在工作區中簽入暫止變更時,Team Foundation 會自動解除鎖定項目。

可以使用 Status 命令 判斷 Team Foundation 版本控制伺服器中有哪些檔案是鎖定的以及是由誰鎖定。

範例

下列範例防止其他使用者簽出 314.cs。

c:\projects>tf lock /lock:checkout 314.cs

下列範例防止其他使用者對 1256.cs 簽入變更,但能讓他們在其工作區內簽出該檔案。

c:\projects>tf lock /lock:checkin 1256.cs

下列範例防止其他使用者暫止對 Team Foundation 版本控制伺服器的 src/ 資料夾中的任何項目的變更。

c:\projects>tf lock /lock:checkout $/src

下列範例解除鎖定 src/ Team Foundation 版本控制伺服器資料夾中的所有檔案,並讓其他使用者可以簽出和簽入這些檔案。

c:\projects>tf lock /lock:none src/

請參閱

參考

命令列語法 (版本控制)

簽出和編輯命令

Status 命令

概念

認識鎖定類型

建立工作區以使用 Team 專案

其他資源

Tf 命令列公用程式命令

使用版本控制鎖定