ロックの種類について

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

ソース管理サーバーの特定のファイルまたはフォルダーに変更が行われないよう一時的に抑止する場合は、Team Foundation バージョン管理 (TFVC) の lock コマンドを使用します。 この機能は、ワークスペースで項目を変更し、マージ競合を解決せずにチェックインする場合に便利です。 特定のファイルまたはフォルダーを同時に複数のユーザーがロックすることはできません。 サーバーの項目へのアクセスを永続的にブロックする場合は、代わりに Permission コマンドを使用します。

ロックの種類

Azure DevOps には、"チェックイン ロック" と "チェックアウト ロック" の 2 種類のロックがあります。

チェックイン ロック

チェックイン ロックは、チェックアウト ロックほど制限が強力ではありません。 チェックイン ロックを適用すると、ユーザーは引き続き、他のワークスペースのロックされた項目をローカルに変更できます。 ただし、これらの変更は、次のいずれかのアクションを実行してロックを削除するまでチェックインすることはできません。

  • 項目からチェックイン ロックを明示的に削除する
  • ファイルへの変更をチェックインして、ロックを暗黙的に削除する

チェックアウト ロック

Azure DevOps の場合、ローカル ワークスペースがあるため、チェックアウト ロックは一般に有効ではありません。 詳細については、「ローカル ワークスペースとサーバー ワークスペースのどちらを使用するかを決定する」を参照してください。 具体的には、チェックアウト ロックは次のように処理されます。

  • 他のユーザーがローカル ワークスペースを使用している可能性があるため、これは強制されません。
  • ローカル ワークスペースを使用している場合、使用できません。
  • プロジェクト コレクションの管理者セキュリティ グループのメンバーがチームのサーバー ワークスペースの非同期チェックアウトを有効にした場合、無効にされます。

チェックアウト ロックの場合、サーバー ワークスペースを使用しているユーザーがロックされた項目をチェックアウトして、各自のワークスペースで変更することはできません。 ご自分のワークスペースの保留中の変更が存在する項目以外にチェックアウト ロックを適用することはできません。

ロックのしくみ

ファイルをロックするときにチェックアウトすると、チェックアウト レコードは新しいロックの種類を追加して変更されます。 ファイルがチェックアウトされていない場合、ロックの変更はワークスペースの保留中の変更セットに追加されます。 lock コマンドでは、checkout コマンドと異なり、ファイルは自動的に編集可能になりません。

TFVC では、ワークスペースでロックされている保留中の変更をチェックインすると、項目は自動的にロック解除されます。 ロックは、undo コマンドを使用してファイルの保留中の変更を元に戻す場合にも解除されます。

フォルダーのロックは暗黙的に再帰的です。 フォルダーをロックする場合は、フォルダーに含まれるファイルをロックする必要はありません。 例外の 1 つは、フォルダーにチェックアウト ロックよりも制限が緩いチェックイン ロックがある場合です。 そのフォルダー内のファイルに対してチェックアウト ロックを使用する場合は、そのチェックアウト ロックを適用する必要があります。

特定のファイルまたはフォルダーを同時に複数のユーザーがロックすることはできません。 Status コマンドを使用すると、Azure DevOps サーバーでロックされているファイルと、それらをロックしたユーザーを確認できます。

ロックは、単独の操作または複数の他の操作の一部として配置できます。 これに該当する操作は、renamecheckoutdeleteundeletemergebranchadd です。 ソース管理への追加または分岐と共に項目をロックする場合、TFVC では、新しい項目が作成されるサーバー パスにロックを配置します。 この配置によって、別のユーザーが同じ場所にファイルを追加または分岐することを防止できます。 rename コマンドを使用して項目をロックすると、以前のサーバー パスと新しいサーバー パスの両方がロックされます。

項目のロックを解除する

ロックは、unlock コマンドを使用して項目を明示的に解除するか、またはチェックイン時に暗黙的に解除できます。 ロックされた項目に保留中の変更をチェックインすると、Azure DevOps はすべてのロックを解除します。

注意

既定では、UnlockOther アクセス許可は管理者のみに与えられます。 UnlockOther アクセス許可を持っているユーザーは、Lock コマンドを使用して、別のユーザーのワークスペースの項目のロックを削除できます。