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
オプションを指定します。
- Rename コマンド (Team Foundation バージョン管理)
- Checkout と Edit コマンド
- Delete コマンド (Team Foundation バージョン管理)
- Undelete コマンド
- Merge コマンド
- Branch コマンド
- Add コマンド
add
と branch
の場合、ロックは新しい項目が作成される名前空間に配置されます。 rename
で配置されたロックは、以前の名前空間と新しい名前空間の両方に適用されます。 詳細については、「フォルダーまたはファイルのロックおよびロックの解除」を参照してください。
ロックの種類
TFVC には、checkin
と checkout
の 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