Skip to main content
ハードロックは、リポジトリ内の特定のパスに対してユーザーに排他的な書き込みアクセスを与えます。ソフトロック が、誰かがファイルを編集していることを示す、操作をブロックしないインジケーターであるのに対し、ハードロックはロックが解除されるまで 他のユーザーがロックされたパスへの変更をコミットすることを防ぎます ハードロックは、マージできず排他的な編集が必要なバイナリファイル(.uasset.umap.fbx など)に特に便利です。
ハードロックは Studio および Enterprise プランで利用可能です。

ハードロックの仕組み

  • ロックは リポジトリごと および パスごと です — 各ロックは特定のリポジトリ内の特定のパスに適用されます。
  • ロックはそれを作成した ユーザー に紐づきます。
  • パスがロックされると、ロック中のユーザー だけがそのパスに変更をコミットできます。
  • 別のユーザーがロックされたファイルをローカルで編集すると、警告 が表示されますが、編集は保存されます。ただし、その変更を コミット することは ブロック されます。
  • ロック中のユーザー または リポジトリの管理者/オーナー のみがロックを解除できます。

パスのロックと解除

デスクトップアプリまたは Web アプリを使用する

パスをロックするには、ツリービューでファイルまたはフォルダーを右クリックし、コンテキストメニューから Lock を選択します。 コンテキストメニューの Lock オプション ロックされると、ツリービューのパスの横にロックアイコンが表示され、誰がロックを保持しているかがわかります。 ツリービューのロックステータスインジケーター ロックを解除するには、ロックされたパスを右クリックし、コンテキストメニューから Unlock を選択します。
ロックを作成したユーザーまたはリポジトリの管理者/オーナーのみがロックを解除できます。ロック中のユーザーが対応できない場合は、リポジトリ管理者に連絡してください。

CLI を使用する

パスをロックする:
ロックを解除する:
リポジトリ内のロックされたすべてのパスを一覧表示する:

自動ロック

リポジトリ管理者は、ファイルパターン(拡張子ごと)を設定して、ユーザーが編集を始めたときにマッチするファイルが 自動的にロック されるようにできます。これにより、一般的なバイナリまたはマージ不能なファイルタイプに対する手動ロックが不要になります。

自動ロックの仕組み

  • ユーザーが保存した、マッチするファイルへの変更がワークスペースに同期されると、Diversion はそのファイルをそのユーザーに対して自動的にロックします。Unreal Engine では、マッチするアセットを保存すると、数秒後にあなたのためにロックされます。ダイアログは開きません。コンテンツブラウザーのアセットに表示されるロックアイコンで、そのロックが自分のものであることが分かります — Unreal Engine でのハードロック を参照してください。
  • ファイルが すでに別のユーザーによってロックされている場合、自動ロックは適用されません — 既存のロックが保持されます。
自動ロックは、マージできず常に排他的な編集が必要な .uasset.umap.fbx などのバイナリファイルに特に便利です。

自動ロックパターンの設定

自動ロックは、リポジトリの管理者またはオーナーによって設定されるリポジトリごとの設定です。
  1. プロフィールアバター をクリックし、Your organizations を選択して、サイドバーの Repositories、リポジトリの列で Hard locks を選択します
  2. リポジトリの列の上部のリポジトリピッカーを使ってリポジトリを選択します
  3. ファイル拡張子パターン(例:.uasset.umap.fbx)を追加します
  4. 変更を保存します
リポジトリ設定の自動ロック構成

自動解除

ロック中のユーザーが特定のブランチに変更をコミットしたときに、ロックを自動的に解除するように設定できます。これは自動ロック設定と一緒に構成されます。

自動解除の仕組み

  • リポジトリ管理者は自動解除をトリガーする ブランチ(例:maindevelop)を定義します。
  • ユーザーがこれらのブランチのいずれかにコミットまたはマージすると、コミットに含まれるロック中のファイルは自動的に解除されます。
リポジトリ設定の自動解除ブランチ構成

ロックされたパスの表示

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

Unreal Engine でのハードロック

Unreal Engine プラグイン は、エディターから直接ハードロックを操作できます。以下の内容はすべて、ハードロックを含むプランが必要です。他のプランでは、ロック操作やプロンプトは表示されません。

コンテンツブラウザーからのロック

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

ロックされたアセットを開く

別のユーザーがロックしているアセットを開くと、保持者を示すダイアログが表示されます。読み取り専用で開くか、通常どおり開くか、閉じるかを選択できます。開くこと自体は決してブロックされません — ロックはコミット時に適用されます。 別のユーザーによってロックされたアセットを開いたときに表示される File Locked ダイアログ

保存ダイアログ

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

設定

Prompt to Lock Assets on Save(Project Settings → Plugins → Diversion、デフォルトでオン)は、上記の「ロックなし」に関する質問のみを制御します。オフにするとその質問はスキップされます — 自動ロックパターンに一致するファイルは引き続き保存時にロックされ、他のユーザーによってロックされたファイルや他の場所で編集中のファイルは引き続きプロンプトが表示されます。ハードロックのないプランでは、この設定はグレーアウトされます。

権限