環境
Windows10
TortoiseSVN 1.9.6
Unity 2017.1.0f3
Unreal Engine 4.19.0
Unityプロジェクトを管理してみる
今回はリポジトリの作成、チェックアウトまで済んだところから始めます。
チェックアウトしたフォルダ内にUnityプロジェクトを作成しましょう。
前回同様に先ずは追加から。
最初にプロジェクトを作成した段階だと
Asset以下とProjectSettingsを追加しましょう。
さて、Unityで管理するデータですが全てを管理する必要はありません。
そこで、前回紹介できなかった無視リストの活用をしてみましょう。
無視リストの活用
先ずはLibraryフォルダ以下のデータをバージョン管理から除外します。
無視リストに追加されたデータは今後追加、コミットをする際の選択肢から除外されて管理がしやすくなります。
無視リストへの追加は下図のように2種類あります。
Library
Library (recursively) または Library (再帰的)
この2つの違いですが、再帰的を選択すると
このフォルダだけでなく、すべてのサブフォルダも同様に無視されます。
この機能はSVN1.8以上が必要になります。
今回は通常のLibraryを無視リストへの追加を選択します。
するとLibraryフォルダから ? マークが消えました。
これでバージョン管理外のデータとして扱う事ができます。
同様にTempフォルダも管理する必要が無いため、無視リストに追加してしまいましょう。
あとは必要なデータだけをコミットして完了です。
Diffツールの活用
この時無視リストに追加したデータは(ProjectName)フォルダに記入されています。
コミット画面にある(ProjectName)ここではNewUnityProjectフォルダをダブルクリックしてみましょう。
するとTortoiseMergeというツールが立ち上がります。
左画面が変更前のデータ、右画面が変更後(今回変更した)データになります。
Library, Tempが追加されていることが確認できますね。
今回は無視リストと差分の見方について紹介しました。
もう少し作業を続けてみましょう。
続いてPlayerControllerのスクリプトを追加しました。
これでコミットしようとすると色々とデータが増えていますね。
今回は.vsとobjが必要ないのでまた無視リストに追加します。
無視リストへの追加はコミットのメニューからも行えます。
しかし、メニューが4種類になっていますね。
"*"を選択してしまうと
プロジェクト以下のバージョン管理したいデータも無視リストに加えてしまいます。
ここでは.vsを選択します。
同様にobjも無視リストに加えましょう。
これで随分とスッキリしましたね。
さて、状態のところがバージョン管理外となっているので、これらも追加をしてやる必要がありますね。
ですが、追加を行わなくても下図のように選択してコミットを行うことで追加とコミットをまとめて行ってくれます。
続いて先程さらっと流してしまった差分の見方についてもう一度おさらいをしましょう。
PlayerContollerを先程作成してコミットしましたね。
あのクラスに少しを変更を加えて差分を確認してみましょう。
先程コミットしたので、状態がバージョン管理外から変更になっていますね。
PlayerContollerをダブルクリックしてTortoiseMergeを開いてみましょう。
左側が変更前の元データで右側が変更後の現在のデータでしたね。
削除した行はグレーで表示され、変更された箇所は黄色で表示されていることが確認できます。
変更の取り消し
続いて変更の取り消しについて紹介します。
バージョン管理を使う理由の1つですね。
先程差分の確認方法について確認しましたね。
ですが、作業前のデータに戻したいという場合もあるでしょう。
そういった場合は下記のように変更の取り消しから変更を元のデータに戻すことができます。
Logの確認方法
時には過去の変更履歴を確認したいこともあるでしょう。
そういった場合はログを表示から確認することができます。
特定リビジョンに戻る
ログから戻りたいリビジョンを選択することでそのリビジョン状態へと戻すことが出来ます。
UE4プロジェクトを管理してみる
基本操作等はUnityと同様ですので、一旦上のUnityの内容に目を通している前提で進めます。
Unity同様にリポジトリの作成、チェックアウトまで済んだところから始めます。
チェックアウトしたフォルダ内にUE4プロジェクトを作成しましょう。
今回はC++の空のプロジェクトで行います。
Unityの時と同様に先ずはプロジェクトを追加します。
無視リストの活用
UE4では.vs, Binaries, Intermadiate, Saved, sln, VC.db, .opendbはバージョン管理の必要がありません。
これはPluginでも同様です。
逆を言ってしまえばConfig, Content, Source, uproject, upluginだけ管理すればいいわけですね。
(ProjectName)フォルダの差分を確認して、無視リストが更新されていることを確認しましょう。
sln, db等はそのファイルだけでなく拡張子ごとまるまる無視リストに追加しています。
また、ContentフォルダのCollections. Developersフォルダも不要であれば無視リストに追加しましょう。
UE4で管理するデータはこれだけになりました。
最初に比べて随分とシンプルになりましたね!
UE4との連携
UE4ではPluginとしてSVNとの連携がサポートされているため、こちらも活用しましょう。
今度はUE4側での操作となります。
Connect to Source Controlを選択しましょう。
すると下図のようなWindowが開くので
ProviderをSubversion
Repository, UserNameを指定しましょう。
接続がうまく行けばSource Controlアイコンが緑になり、下図のような情報が出てきます。
まとめ
UnityとUE4の実際のバージョン管理を交えつつ紹介させていただきました。
まだまだ紹介しきれていない機能があるんですが
とりあえず個人で簡単にバージョン管理を行う場合や練習としてはこれで必要十分だと思います。
バージョン管理したことがないという人は是非ともこの機会に挑戦してみてください。
また、+や?などのアイコンがファイル上に出ないということがあると思います。
これはDropboxやOneDriveなどのIconOverlayの優先度の問題で結構対処が面倒な問題です。
レジストリを書き換えたりしないといけないこともあります。
subversion icon overlays not showing
でググってみてください。