バージョン管理
Perforce の統合

バージョン管理の統合

Unity は PerforcePlastic SCM によるバージョン管理の統合をサポートしています。バージョン管理の選択に関する詳細情報は、それらのページを参照してください。

バージョン管理システム を使うと、個人/複数人のユーザーでコードを管理するのが楽になります。これは、アクセスを監視されたファイルのリポジトリです。Unity の場合、ここにあるファイルはすべて Unity プロジェクトに関連するものです。バージョン管理では、誰がその変更を行ったか、なぜ変更したのか、何を追加/変更したのか等、ソースへのあらゆる変更を追跡することが可能です。これにより、変更を取り消して過去のバージョンのコードに戻したり、バージョン間の差異を比較することが簡単にできます。コードのどの部分がバグの原因になっているのかを調べるのも楽になります。

Unity 上のバージョン管理の設定

バージョン管理ソフトウェアのマニュアルにしたがって設定が完了したら、以下の手順を実行してください。

  1. 任意のクライアントを使用して、コンピューター上にワークスペースを設定または同期してください。(このステップに関する説明は Plastic SCM の統合Perforce の統合 を参照してください。)

  2. 既存のプロジェクトをワークスペースにコピーするか、Unity を起動して新しいプロジェクトをワークスペースに作成してください。

  3. プロジェクトを開き、メニューから Edit > Project Settings > Editor の順に選択してください。

  4. Version Control の下のドロップダウンで、使用するバージョン管理に合う Mode を選択します。

  5. バージョン管理の設定(username / password / server / workspace 等)を入力してください。

  6. ファイルがプロジェクト(あるいはディスク上のフォルダー)に追加されたときに、自動でバージョン管理に追加されるようにしたい場合は、 Automatic add のチェックボックスをオンにしてください。オンになっていないと新しいファイルは手動で追加する必要があります。

  7. オフラインで作業する選択肢もあります。このモードは、手動で更新をバージョン管理システムに統合し直すことができる上級ユーザー向けです (Perforce を使用したオフラインでの作業)。

  8. Asset SerializationDefault Behaviour ModeSprite Packer のオプションは、開発チームのバージョン管理システムに合わせて自在に編集できます。

  9. Connect をクリックした後に Connect ボタン上部に「Connected」と表示されるのを確認してください。

  10. 標準で使用しているクライアント (例えば p4v) を使用して、Assets フォルダーや ProjectSettings フォルダーにあるすべてのファイル (.meta で終わるファイルも含む) を確実に加えるようにしてください。

どの時点でも、メニューの Prefences から External Tools を選択し、Revision Control Diff/Merge ツールを設定することが可能です。

バージョン管理の使用

この時点で、バージョン管理クライアントを 1つ 1つ確認する代わりに、プロジェクトビューのアセットを右クリックして、直接、主要なバージョン管理操作が可能です。バージョン管理の操作方法は、選んだバージョン管理によってさまざまです。この表では、どのバージョン管理で、どのような操作が直接可能なのかを示しています。

操作 説明 Perforce **Plastic SCM
Check Out ファイルに変更を加えることが可能になります Yes Yes
Diff against head ローカルと Head とのファイルの差分 Yes Yes
Get Latest 最新の変更箇所を抜き出しファイルを更新する Yes 不可*
Lock 他のユーザーがファイルに変更を加えられないようにする Yes 不可**
Mark Add バージョン管理には追加せずにローカルで追加する Yes Yes
Resolve Conflicts 複数のユーザーによって変更されたファイルの競合を解決する Yes 不可***
Revert 開いているファイルの変更を取り消す Yes Yes
Revert Unchanged 開いている未変更ファイルに加えられた変更を取り消す Yes Yes
Submit ファイルの現在の状態をバージョン管理に送る Yes Yes
Unlock ロックを解除し、誰にでも変更が加えられるようにする Yes 不可**

* 最新の変更ヶ所の取得およびファイルの更新に Plastic SCM を使用する場合は、バージョン管理ウィンドウを使用する必要があります。

** Plastic SCM を使用してロックやロック解除を行うには、特定の Plastic SCM ロックファイルを外部で編集する必要があります。詳細は Plastic SCM の統合 のページを参照してください。

*** 競合はバージョン管理メニュー内に表示されますが Plastic SCM GUI 上で解決されます。

Mac の Plastic SCM バージョン管理メニュー
Mac の Plastic SCM バージョン管理メニュー
Windows の Plastic SCM バージョン管理メニュー
Windows の Plastic SCM バージョン管理メニュー

Version Control ウィンドウ

変更リストのファイル一覧は Version Control ウィンドウ ( Window->Version Control ) で確認できます。この図ではエディターのインスペクターの隣に表示されています。

‘Outgoing’ タブには、ローカルで加えられた変更ヶ所でバージョン管理へのコミット待ちのものがすべてリスト表示されます。‘Incoming’ タブにはバージョン管理から取得されたすべての変更ヶ所がリスト表示されます。

このウィンドウ内でアセットや変更リスト上を右クリックすると、それらを操作できます。ある変更リストから別の変更リストへアセットを移動するには、アセットをドラッグして移動したい先の変更リストのヘッダーにドロップしてください。

アイコン

以下は、ファイルやアセットのバージョン管理の状態を見た目で把握しやすくするために Unity エディター上に表示されるアイコンです。

アイコン 意味 追加情報
ローカルで加えたファイル バージョン管理へ加えるのを保留
別のユーザーがバージョン管理に加えたファイル バージョン管理へ加えるのを保留
本人によってチェックアウトされているファイル ファイルはローカルでチェックアウトされています
別のユーザーによってチェックアウトされているファイル ファイルはリモートでチェックアウトされています
ファイルのマージ時に競合が発生しました 競合を解決する必要があります
本人によって削除されたファイル バージョン管理上での削除待ち
別のユーザーによって削除されたファイル バージョン管理上での削除待ち
バージョン管理に未登録のファイル 無し
本人によってロックされているファイル 本人以外は編集不可
別のユーザーによってロックされているファイル 本人は編集不可
別のユーザーがこのファイルの別バージョンをチェックインしました 「Apply Incoming Changes」で最新バージョンを取得可能
サーバーがこのファイルのバージョン管理状況をリクエストしています。または、返答を待機しています。 このアイコンは、Perforce のような集中管理されたバージョン管理システムを使用している場合にのみ表示されます。

注意事項

  • バージョン管理システムには、アセットが Checked out とマークされるまでは編集ができないものもあります。( Work offline にチェックが入っている場合は除く。)
  • .scene ファイルへの変更を保存すると、そのファイルは自動でチェックアウトされます。
  • Project Settings インスペクターの右下にある checkout ボタンで、設定をチェックアウトできます。
  • 頻繁に表示される黄色い警告は、項目に変更を加えるためにそれをチェックアウトするよう促すものです。これは主に Project Settings インスペクターに表示されます。
  • Plastic SCM では、ライトマップなどの自動生成されたアセットは、自動で加えられる、または、チェックアウトされます。

送信時に変更されていないファイルの自動の元返り

アセットを扱う場合 Unity は、アセットファイルとそれに関連する .meta ファイルの両方を自動でチェックアウトします。ただし、ほとんどの場合 .meta ファイルは修正されていないため、後からブランチをマージするなどの、余分な作業が必要になる可能性があります。

オフラインモード

Unity はオフラインモードでの作業にも対応しています (例えば、ネットワーク接続なしでバージョン管理リポジトリの作業を継続する等)。

  • バージョン管理への接続を切った状態での作業を可能にするには、Version Control Settings から Work offline を選択してください。

非同期の許可

Unity は、Perforce などの一部のバージョン管理プロバイダーの非同期バージョン管理状況クエリをサポートしています。 このオプションを使用すると、これらのプロバイダーは、Unity をフリーズさせずにファイルのバージョン管理状況を更新できます。バージョン管理サーバーへの接続で遅延が発生する場合は、このオプションを使用します。

状況のクエリ中にフリーズが発生する場合は、Version Control Settings__ に移動し、 Allow Async Update__ を選択します。

注意 状況クエリのみが非同期です。ファイルの状況を変更したり、ファイルの状況に関する最新の情報を取得する操作は、同期で実行されます。

トラブルシューティング

Unity が バージョン管理クライアントに更新をコミットできない場合は (例えば、サーバーダウンやライセンス問題の発生)、更新はばらばらのチェンジセットに格納されます。

Asset Server の使用

Asset Server (Unity の内部バージョン管理システム) の使用について詳しくは、Asset Server を参照してください。

他のバージョン管理システムの使用

Unity がサポートしないバージョン管理システムを使用するには、Editor Settings の Version Control の ModeMetaData を選択します。これにより、選択したバージョン管理システムのソースアセットとメタデータを管理できるようになります。詳しくは、外部のバージョン管理システム を参照してください。


  • 2017–09–18 限られた 編集レビュー で修正されたページ

  • 非同期のバージョン管理状況クエリの説明は Unity 2017.3 で追加

バージョン管理
Perforce の統合