2014年1月22日水曜日

【連載Git入門 第7回】SourceTreeでGitを始めよう!Unityを管理する際の注意事項

初心者の方向けにGitの使い方をまとめています。
連載目次:【連載Git目次】ほんとは簡単?SourceTreeでGitを始めよう!
前回:【連載Git 第6回】UnityのプロジェクトをGitで管理しよう

連載ラストです!
前回まででGitの使い方を解説してきました。
今回は運用する上での注意点なんかを書いてみます。

と言ってもまだほとんど使ってないので
懸念事項一覧みたいな感じですね。
ちゃんと対応できたものから追記していきたいと思います。


UnityプロジェクトをGitで管理する際の注意事項


主にチーム開発時の懸念事項とかです。

バイナリファイルはマージできない

Unityの場合、Sceneファイルなどはバイナリファイルです。
バイナリファイルは競合が起こっても差分を確認したり合わせたりすることができません。
(どちらか一方を選択するだけ)
なのでもし2人同時に同じSceneを変更したりすると、
確実に片方の変更は消えることになります。

→2014/01/23 追記
 コメントいただきました。匿名さんありがとうございます。
 Unity3.5からはSceneをテキストファイルとして扱えるようです!
 http://docs.unity3d.com/Documentation/Manual/TextualSceneFormat.html
 設定方法確認しておきます。

 うーんPro専用かな?
 英語版にはPro専用の表記ないし試してみないと分からないな。
 http://docs-jp.unity3d.com/Documentation/Manual/TextualSceneFormat.html
 →BitBucket見てみたらテキスト形式(YAML)で保存されてた!
   UnityFreeでもEditorSettingでAssetSerializationをForceTextにするだけで使えるっぽいです。

対策

同じシーンを同時に編集しないような運用が必要になりそうです。
・各メンバーごとにテスト用シーンを用意し、デバッグはそこで行う。
・主要なシーンにマージする作業は担当者を固定する。
など。
やったことないので予想です。

チーム開発時のブランチの切り方

複数人でソースを共有する場合、
各自が自由にブランチを切り、自由にプッシュしていくと
良くわからないブランチで溢れてしまいそうです。

対策

ブランチを切るルール、プッシュするルールを決めた方がよさそうですね。
簡単に思いつくのは
・各自の名前をつけたブランチを用意する。
・自分の名前のブランチしかプッシュしない。
・フェッチは全員のブランチを取得
とか?
これも予想。実際にやってみないと分からない。

GitFlowなどを使うのも良さそうです。
いまさら聞けない、成功するブランチモデルとgit-flowの基礎知識

とりかくチーム内で認識を揃えること。

Script名の重複

現在のUnityC#では名前空間(namespace)をサポートしていません。
参照:http://ws.cis.sojo-u.ac.jp/~izumi/Unity_Documentation_jp/Documentation/ScriptReference/index.Writing_Scripts_in_Csharp.html

そのため各々が作ったスクリプトのファイル名がかぶった場合、
配置フォルダが違っていてもビルドエラーとなってしまいます。

対策

namespaceが使えない以上はフォルダ分けしても無意味なので
ファイル名をユニークにする必要がありそうです。
・スクリプト作成者の名前をファイル名の頭に付ける
などで対応しましょう。

文字コード

WindowsとMacでコードを共有する場合、文字コードとか気をつけた方がいいかもです。
今度Gitを使ってWindowsとMacでソース共有を始めるつもりなので
確認とれたらちゃんとまとめます。

とりあえず軽く調べて出てきたリンクを置いておきます。
Unityであった.csファイルの文字コード絡みのエラー : これを読めば思い出す
スクリプトファイルのutf-8変換 : DEBUG.LOG

改行コード

文字コードと同じように改行コードもWindowsとMacで違います。
マージするとき大量の差分が出てしまいそうな気がしないでもないですね。
これもまた調べます。

ライセンス

アセットによってはチームで使うとダメなのもあるのかなーって思ったり。
アセットごとに要確認ですね。

その他

思いつくものを書き連ねましたが
実際に使うとまだまだ出てきそうですね。

気づいたものがあれば都度追記していきます。

あとがき

Gitの基礎から全7回に渡って説明してきましたがいかがでしたでしょうか?
SourceTreeという素晴らしいツールのおかげでgitコマンドを
一つも覚えることなく説明を終えることができました。

今回の連載はなるべく画像つきで
そのまま手を動かせば使えるように意識して書きました。

少しでもGit初心者さんの足がかりになれば幸いです。

ここまで読んでいただきありがとうございました。

スポンサーリンク

Related Posts Plugin for WordPress, Blogger...