Unityでのバージョン管理のベストプラクティスは?


11

Unityでバージョン管理を使用する方法、特にコードだけではないシーンやプレハブなどのオブジェクトを使用する方法に少し混乱しています。

最近、同僚と同じシーンのさまざまな部分で作業していたときに問題が発生しました。その結果、衝突、分岐、および大量のマージが発生しました。

結局、私の改訂はとにかく彼の変更によって上書きされました。

現時点で私が見る唯一の方法は、同じオブジェクトを順番に操作することですが、特に現在行っているすべての作業がシーン内で行われるため、あまり便利ではないようです。

このような状況では、人々は通常何をしますか?

(私たちはMercurial、BitBucket、およびSourceTreeを使用しています。)


1
えーと。質問してから5分以内に反対票が投じられた理由をコメントしてください。何が悪いのかわからないのなら、質問を改善することはできません。
Kaworu

2
私もこれに遭遇しました。スクリプトを問題なく配置できますが、シーンなどは難しく見えます
Ewan

1
これらのシーンファイルは、マージが難しいテキストファイルですか、それとも不可能性が低いバイナリファイルですか?それらがバイナリの場合、Unity はそのためのマージ(そしておそらく差分?)ツールを提供しているようです
Nathan Cooper、

@NathanCooper私が知る限り、これらはバイナリです。少なくともそれらはバイナリのように動作し、テキストエディタで開くと、他のコンパイル済みファイルと同じ量のmumbo-jumboがロードされます。スマートマージについては知りませんでした。ありがとう!
Kaworu

回答:


6

GitHubを使用している場合は、次の解決策を試すことができます。

  1. UnityでEdit-> Project Settings-> Editorを開き、次にProject SettingsのInspectorで開きます。
  2. 「バージョン管理モード」を「可視メタファイル」に変更します。
  3. 「Asset serialization mode」を「Force text」に変更します。

これは私にとってはうまくいきます。


3

ほとんどのバージョン管理システム(VCS)はテキスト用に設計されています。それらは通常diff、ソースコードの比較()およびマージのための非常に強力で便利な機能を備えており、一部のツールは変更を自動的にマージすることもできます(変更をマージする方法と、開発者に依頼する必要がある時点を推測する適切な仕事をします)手動マージ)。

diffこれらのファイルを使用するそれぞれのアプリケーションからのバイナリファイルのサポートとマージを改善することは素晴らしいことです。たとえば、Microsoft Wordは2つのドキュメントを比較することを可能にします。これは便利なマージツールではありませんが、何もしないよりはましで、何度も何度も時間を節約できます。残念ながら、マージ機能は通常、ソフトウェア製品で監視されているか、実装が困難です(diff3Dシーンのをどのように視覚化しますか?)

バイナリファイルに関しては、VCSからほとんど助けを得ません。一連の変更を効率的に保存できないだけでなく、変更をマージすることもできません。

2年前、ビデオ編集ソフトウェアでのバージョン管理の使用に関して非常によく似た質問をしました。私の質問に対する回答の一部はここにも当てはまると思います。唯一の(しかし重要な)違いは、私の質問は大きなファイルに関するものであり、バイナリファイルはおそらく比較的小さいということです。

あなたが見つけたアプローチ、つまり「同じオブジェクトに順番に取り組む」は良いものです。マージできない場合は、同じもので並行して作業しないでください。同じオフィスで仕事をしているなら、それは簡単です。そうでない場合、ほとんどのバージョン管理システム(使用するものを含む ;これはBitBucketのコンテキストでも説明さています)はロックをサポートします。これは、VCSのユーザーがシステムを通じて、指定されたファイルの権利に取り組んでいることを通知するためのものです。今; 他のユーザーはファイルの最新バージョンをロードできますが、変更することは想定されていません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.