Lock コマンド (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\username または username として指定できます。

<TeamProjectCollectionUrl>

ロックまたはロック解除するファイルまたはフォルダーを含むプロジェクト コレクションの URL (例: http://myserver:8080/tfs/DefaultCollection)。

Options

オプション

説明

/lock

ロックの種類を指定するか、項目からロックを削除します。 詳細については、「ロックの種類について」を参照してください。

ロック オプション:

  • None: 項目からロックを削除します。

  • Checkin: すべてのワークスペースで項目をチェックアウトおよび編集できるようにしますが、チェックイン ロックを明示的に解除するまで、ユーザーは指定した /workspace の外部の項目に対する変更をチェックインできなくなります。 指定した項目が他のワークスペースでロックされている場合、ロック操作は失敗します。

  • Checkout: ロックを明示的に解除するまで、指定した項目をユーザーがチェックインまたはチェックアウトできないようにします。 指定した項目のいずれかをユーザーがロックした場合、またはいずれかの項目に対して保留中の変更が存在する場合、ロック操作は失敗します。

/workspace

ロックを適用する別のワークスペースの名前を指定します。 既定では、ロックは現在使用しているワークスペースに適用されます。

/login

Azure DevOps でユーザーを認証するためのユーザー名とパスワードを指定します。

/collection

プロジェクト コレクションを指定します。

解説

ロック コマンドを使用すると、項目の TFVC サーバー バージョンを一時的に固定できるので、保留中の変更をチェックインする際にマージの競合を解決する必要がありません。 TFVC サーバーの項目へのアクセスを永続的に禁止する場合は、代わりに Permission コマンドを使用します。

注意

チームメイトに対する気遣いとして、項目にロックを適用するときには通知し、これを行う理由を説明し、可能な場合はロックを削除するタイミングを見積もります。

tf コマンド ライン ユーティリティの使用方法の詳細については、「Team Foundation バージョン管理コマンドの使用」を参照してください。

項目をロックする方法

項目をロックするには、lock コマンドを使用するか、その他のいくつかの tf コマンド ライン ユーティリティ コマンドの実行時に lock オプションを指定します。

addbranch の場合、ロックは新しい項目が作成される名前空間に配置されます。 rename で配置されたロックは、以前の名前空間と新しい名前空間の両方に適用されます。 詳細については、「フォルダーまたはファイルのロックおよびロックの解除」を参照してください。

ロックの種類

TFVC には、checkincheckout の 2 種類のロックが用意されています 。

チェックイン ロックは、チェックアウト ロックほど制限が強力ではありません。 チェックイン ロックを適用すると、ユーザーは引き続き他のワークスペースで項目をローカルに変更できます。 ワークスペースからチェックイン ロックを明示的に削除するまで、変更をチェックインすることはできません。

チェックアウト ロックは、チェックイン ロックよりも制限が厳しくなります。 バージョン管理されたファイルまたはフォルダーにチェックアウト ロックを適用する場合、ユーザーは項目を編集用にチェックしたり、既存の保留中の変更にチェックインしたりすることはできません。 項目に保留中の変更がある場合は、チェックアウト ロックを取得できません。

チェックアウト ロックを適用するタイミングとチェックイン ロックを適用するタイミングの詳細については、「ロックの種類について」を参照してください。

ロックのしくみ

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

フォルダーのロックは暗黙的に再帰的です。 フォルダーをロックする場合、ファイルに制限が厳しいチェックアウト ロックを適用する場合を除いて、チェックイン ロックが適用されているフォルダーに含まれるファイルをロックする必要はありません。

項目のロックを解除する

ロックされた項目のロックを解除するには、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