.uasset、.umap、.fbx など)に特に便利です。
ハードロックは Studio および Enterprise プランで利用可能です。
ハードロックの仕組み
- ロックは リポジトリごと および パスごと です — 各ロックは特定のリポジトリ内の特定のパスに適用されます。
- ロックはそれを作成した ユーザー に紐づきます。
- パスがロックされると、ロック中のユーザー だけがそのパスに変更をコミットできます。
- 別のユーザーがロックされたファイルをローカルで編集すると、警告 が表示されますが、編集は保存されます。ただし、その変更を コミット することは ブロック されます。
- ロック中のユーザー または リポジトリの管理者/オーナー のみがロックを解除できます。
パスのロックと解除
デスクトップアプリまたは Web アプリを使用する
パスをロックするには、ツリービューでファイルまたはフォルダーを右クリックし、コンテキストメニューから Lock を選択します。

CLI を使用する
パスをロックする:自動ロック
リポジトリ管理者は、ファイルパターン(拡張子ごと)を設定して、ユーザーが編集を始めたときにマッチするファイルが 自動的にロック されるようにできます。これにより、一般的なバイナリまたはマージ不能なファイルタイプに対する手動ロックが不要になります。自動ロックの仕組み
- ユーザーが保存した、マッチするファイルへの変更がワークスペースに同期されると、Diversion はそのファイルをそのユーザーに対して自動的にロックします。Unreal Engine では、マッチするアセットを保存すると、数秒後にあなたのためにロックされます。ダイアログは開きません。コンテンツブラウザーのアセットに表示されるロックアイコンで、そのロックが自分のものであることが分かります — Unreal Engine でのハードロック を参照してください。
- ファイルが すでに別のユーザーによってロックされている場合、自動ロックは適用されません — 既存のロックが保持されます。
自動ロックは、マージできず常に排他的な編集が必要な
.uasset、.umap、.fbx などのバイナリファイルに特に便利です。自動ロックパターンの設定
自動ロックは、リポジトリの管理者またはオーナーによって設定されるリポジトリごとの設定です。- プロフィールアバター をクリックし、Your organizations を選択して、サイドバーの Repositories、リポジトリの列で Hard locks を選択します
- リポジトリの列の上部のリポジトリピッカーを使ってリポジトリを選択します
- ファイル拡張子パターン(例:
.uasset、.umap、.fbx)を追加します - 変更を保存します

自動解除
ロック中のユーザーが特定のブランチに変更をコミットしたときに、ロックを自動的に解除するように設定できます。これは自動ロック設定と一緒に構成されます。自動解除の仕組み
- リポジトリ管理者は自動解除をトリガーする ブランチ(例:
main、develop)を定義します。 - ユーザーがこれらのブランチのいずれかにコミットまたはマージすると、コミットに含まれるロック中のファイルは自動的に解除されます。

ロックされたパスの表示
- デスクトップアプリまたは Web アプリ: ロックアイコンがツリービューでロックされたパスの横に表示されます。アイコンにカーソルを合わせると、誰がロックを保持しているかを確認できます。
- CLI: 引数なしで
dv lockを実行すると、リポジトリ内のすべてのロックが一覧表示されます。 - Unreal Engine: ロックアイコンがコンテンツブラウザーのアセットに表示されます。ツールチップに保持者の名前が表示されます。

Unreal Engine でのハードロック
Unreal Engine プラグイン は、エディターから直接ハードロックを操作できます。以下の内容はすべて、ハードロックを含むプランが必要です。他のプランでは、ロック操作やプロンプトは表示されません。コンテンツブラウザーからのロック
1 つ以上のアセットを右クリックし、Revision Control サブメニューを開き、Diversion Locks セクションを使用します:- Lock — 選択したアセットをロックし、あなただけがそれらに変更をコミットできるようにします。他のユーザーはローカルで保存することは引き続き可能です。
- Unlock — 自分のロックを解除します。
- Force Unlock — 別のユーザーのロックを解除します。選択したアセットが他の誰かによってロックされている場合にのみ表示され、確認を求められます。リポジトリ管理者権限が必要です(そうでない場合、サーバーはリクエストを拒否します)。

ロックされたアセットを開く
別のユーザーがロックしているアセットを開くと、保持者を示すダイアログが表示されます。読み取り専用で開くか、通常どおり開くか、閉じるかを選択できます。開くこと自体は決してブロックされません — ロックはコミット時に適用されます。
保存ダイアログ
保存すると、プラグインは保存対象のすべてのファイルをチェックし、判断が必要なものについて確認します — 1 回の保存につき 1 つのダイアログで、ファイルは状況ごとにグループ化されます:
- 判断が不要なファイル — すでに自分でロック済み、または 自動ロックパターン の対象 — は、参考情報として一覧に表示され、そのまま保存されます。
- 自動ロックパターンに一致するファイルは、確認なしで保存され、少し後にあなたのためにロックされます。そのようなファイルに対して「ロックなし」を選択することは意味がないため、ダイアログでは提示されません。
- Skip はエディター内でファイルを未保存のまま残します。Cancel は保存全体をスキップします。
- 他の誰かがロックしているファイルの保存は許可されます — 保存は自分のワークスペースにのみ同期されます — が、ロックが解除されるまでコミットはブロックされたままです。
- 自動保存はプロンプトを表示しません:オートセーブ、スクリプトによる保存(Python/ブループリント)、コマンドレット、マージ中や Play In Editor 中の保存はすべて確認なしで通過します。コミット時のチェックは引き続きロック中のファイルを保護します。

