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

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

Visual Studio 2019 |Visual Studio 2022

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

必要條件

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

語法

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

參數

引數

Argument

說明

<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 ,或在數個 lock 其他 tf 命令列公用程式命令的傭金期間指定選項,包括:

針對 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