.dvignore ファイルは、変更を追跡するときに無視すべきファイルとディレクトリを指定するために Diversion で使用されます。これにより、ビルド成果物、一時ファイル、キャッシュデータなど、不要なファイルや自動生成されるファイルを除外して、リポジトリをクリーンに保つのに役立ちます。
目的
.dvignore ファイルを使用することで、関連するファイルのみがリポジトリにコミットされるようになります。これにより、以下が実現します:
- 不要なファイルによる混乱を防ぐ。
- 大きなファイルや頻繁に変更される一時ファイルを追跡しないようにして、パフォーマンスを向上させる。
- 機密ファイルや自動生成ファイルのコミットを避ける。
.dvignore はリポジトリが 何を追跡・保存するか を決定しますが、選択同期 は、それらの既に追跡されているファイルのうち、ワークスペースが実際にダウンロードするものを制御します。
ファイル構造
.dvignore ファイルは、除外するファイルまたはディレクトリを定義するパターンで構成されます。通常、以下のルールに従います:
#で始まる行はコメントとして扱われます。ハッシュで始まるパターンには、最初のハッシュの前にバックスラッシュ\を付けてください。- 同じ行にコメントとパターンを混在させないでください。混在させるとパターンが効かなくなります。
- ワイルドカード
*は任意の文字列に一致します (ただし**とは異なり、/の境界を超えません)。 /で終わるディレクトリは、その中のすべてのコンテンツを無視します。- 否定
(!)は、他のパターンで無視される可能性のあるファイルを明示的に含めます。
高度なルールセマンティクス
- ルート固定
/– 先頭のスラッシュはリポジトリルートからマッチします。付いていない場合、パターンは任意の場所にマッチできます。 - 二重アスタリスク
**– ディレクトリ境界を越えて一致します (例:Assets/**/config.ini)。 - 否定の優先順位 –
!patternは、先行するルールにより祖先の 1 つが無視されている場合にのみ、パスを再び含めます。
Saved/Windows/Content/file.txt -> やはり無視されます
- ネストされた
.dvignoreファイル – ネストされたディレクトリのルールは親ディレクトリのルールをオーバーライドします。
Git 互換性: Diversion は Git の .gitignore と同じパターンマッチセマンティクスを (ネストされた ignore ファイルのサポートを含めて) 実装しているため、Git からコピーされたソースツリーはそのまま同じように動作します。
重要: Diversion は既存の
同じディレクトリに
Unreal Engine のソースリポジトリを Git から移行する場合など、既存の
.gitignore ファイル (ルートおよびネスト) を .dvignore ファイルと同様に扱うため、Git リポジトリを Diversion に移行すると、元の ignore ルールが保持されます。同じディレクトリに
.dvignore と .gitignore の両方が存在する場合、それらのパターンはマージされ、.dvignore が優先されます (last-match-wins)。これにより、.gitignore を編集することなくルールをオーバーライドできます。Unreal Engine のソースリポジトリを Git から移行する場合など、既存の
.gitignore ファイルを削除し、
ニーズに合わせたカスタム ignore ファイルに置き換えたい場合があります。V1 マッチャーを有効にする
Diversion の ignore ファイルマッチングはバージョン管理されています。デフォルトはほとんどのプロジェクトでうまく機能し、V1 はオプトインのアップグレードで、そのパターンマッチングは Git の.gitignore ルールにさらに近く従います — last-matching-rule-wins の優先順位、パスを再包含する否定、ルート固定パターン、ディレクトリ境界を越える **、ネストされた ignore ファイルなど。有効にするには、リポジトリルートの .dvignore の 最初の非空行 として、パターンの前に (先頭の空白行は問題ありません) 以下のディレクティブを追加します:
Unreal
Unity
.dvignore については、Unity ベストプラクティス を参照してください。
Godot
.dvignore ファイルを修正できます。追加のツールやフレームワークを扱う場合は、それらのキャッシュや一時ディレクトリを追加してリポジトリ管理を改善することを検討してください。
たとえば、カスタムビルドシステムを使う場合、次のように追加できます:
既にコミットされたファイルを無視する
重要: 既にコミットされているファイルとディレクトリは、.dvignore では無視されません。
- コミット済みのパスを無視したい場合は、まず削除して削除をコミットする必要があります。そのパスの内容が自動生成できない場合は、別の場所にバックアップし、削除をコミットした後に戻してください。
- 削除をコミットする前にコラボレーターにコピーをバックアップするよう通知してください。そのコミットで更新すると、彼らのコピーも削除されるためです。
- 自動生成されるパスの例: ビルド成果物と中間ファイル、自動生成コード。
- 自動生成されないパスの例: 認証情報ファイル、ローカル設定ファイル。
子孫の 1 つに対する 否定 ルールがある場合、空のディレクトリは無視されません。ディレクトリの子孫の 1 つに 否定 ルールがある場合、その子孫のファイルがまだ存在しなくても、Diversion はそのディレクトリを トラック し続けます。
!Build/app.dll が将来のファイル候補を再包含するため、Build/ ディレクトリ自体がトラックされます (そして app.dll が現れるまで空として表示されます)。
Build/ を完全に無視したい場合は、否定行 (!Build/app.dll) を削除してください。
