共用方式為


鎖定指令 (Team Foundation 版本控制)

Azure DevOps Services |Azure DevOps Server 2022 - Azure DevOps Server 2019

Visual Studio 2019 |Visual Studio 2022

Team Foundation 版本控制 (TFVC) lock 命令鎖定或解除鎖定檔案或資料夾。 命令會拒絕或還原用戶的許可權,以簽出專案以編輯至不同的工作區,或從不同的工作區簽入擱置中的項目變更。

先決條件

若要使用 lock 命令,請將 Lock 權限設定為 Allow。 如果您需要 將其他使用者的變更解除鎖定 許可權設定為 [允許 移除其他使用者所持有的鎖定,如果您沒有該使用者工作區的寫入 許可權 。 如需詳細資訊,請參閱 預設 TFVC 權限

語法

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

參數

參數

自變數

描述

<itemspec>

識別要鎖定或解除鎖定的檔案或資料夾。 如需 TFVC 如何剖析 itemspec 以判斷哪些項目在範圍內的詳細資訊,請參閱 使用選項修改命令如何

注意

您可以指定多個 itemspec 自變數。

<workspacename>

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

<username>

提供值給 [/login] 選項。 您可以將 username 值指定為 DOMAIN\usernameusername

<TeamProjectCollectionUrl>

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

選項

選項

描述

/lock

指定鎖定類型,或從專案移除鎖定。 如需詳細資訊,請參閱 瞭解鎖定類型。

鎖定選項:

  • None:從專案中移除鎖定。

  • Checkin:讓專案可在所有工作區中取出和編輯,但會防止使用者簽入指定 /workspace 以外的項目變更,直到您明確釋放簽入鎖定為止。 如果指定的項目鎖定在任何其他工作區中,鎖定作業就會失敗。

  • Checkout:防止使用者簽入或簽出指定的專案,直到您明確釋放鎖定為止。 如果使用者已鎖定任何一個指定的專案,或針對任何一個專案存在擱置的變更,鎖定作業就會失敗。

/workspace

指定要在其中套用鎖定的不同工作區名稱。 根據預設,鎖定會套用在您目前所在的工作區中。

/login

指定要向 Azure DevOps 驗證使用者的使用者名稱和密碼。

/collection

指定專案集合。

言論

您可以使用lock命令暫時凍結專案的TFVC伺服器版本,讓您可以簽入擱置中的變更,而不需要解決任何合併衝突。 如果您想要永久防止存取 TFVC 伺服器中的專案,您應該改為使用 Permission 命令

注意

作為小組成員的禮貌,當您將鎖定套用至專案時通知他們、說明您執行此動作的原因,並預估何時計劃移除鎖定,如果可以的話。

如需如何使用 tf 命令行公用程式的詳細資訊,請參閱 使用 Team Foundation 版本控制命令

如何鎖定專案

您可以使用 lock 命令來鎖定專案,或在下列幾個其他 tf 命令行公用程式命令的委託期間指定 lock 選項,包括:

針對 addbranch,鎖定會放在將建立新專案的命名空間上。 放置於 rename 的鎖定同時套用至舊命名空間和新命名空間。 如需詳細資訊,請參閱 鎖定和解除鎖定資料夾或檔案

鎖定類型

TFVC 提供兩種類型的鎖定:checkincheckout

簽入鎖定的限制低於取出鎖定。 當您套用簽入鎖定時,用戶可以繼續對其他工作區中的項目進行本機變更。 除非您從工作區明確移除簽入鎖定,否則無法簽入變更。

簽出鎖定比簽入鎖定更嚴格。 當您將簽出鎖定套用至版本控制的檔案或資料夾時,使用者既無法簽出專案以進行編輯,也無法簽入預先存在的擱置變更。 如果專案目前有任何擱置的變更,您就無法取得簽出鎖定。

如需何時套用籤出鎖定和何時套用簽入鎖定的詳細資訊,請參閱 瞭解鎖定類型

鎖定的運作方式

如果您在鎖定檔案時取出檔案,其狀態會修改為包含新的鎖定類型。 如果未取出檔案,則會將 鎖定 變更新增至暫止工作區變更集。 不同於 checkout 命令,lock 不會自動讓檔案成為可編輯的。

資料夾上的鎖定會隱含遞歸。 如果您鎖定資料夾,除非您想要將更嚴格的簽出鎖定套用至具有簽入鎖定之資料夾中的檔案,否則不需要鎖定它所包含的檔案。

解除鎖定專案

您可以使用 [none] 選項解除鎖定專案。 當您簽入工作區中的擱置變更時,TFVC 也會自動解除鎖定專案。

您可以使用 Status 命令來判斷 TFVC 伺服器中鎖定的檔案,以及檔案鎖定者

例子

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

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

下列範例會防止其他使用者簽入 1256.cs 的變更,但可讓他們在工作區中籤出變更。

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

下列範例會防止其他使用者擱置對 TFVC 伺服器中 $/src 資料夾中任何項目的變更。

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

下列範例會解除鎖定,並使 $/src TFVC 伺服器資料夾中的所有檔案可供其他使用者取出和簽入。

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