Praktik terbaik untuk kontrol versi di Unity?


11

Saya agak bingung bagaimana cara menggunakan kontrol versi dengan Unity, terutama dengan objek seperti adegan atau prefab yang bukan hanya kode.

Kami memiliki masalah baru-baru ini ketika rekan saya dan saya sedang mengerjakan bagian berbeda dari adegan yang sama. yang mengakibatkan konflik, percabangan dan penggabungan yang berlimpah.

Pada akhirnya, revisi saya ditimpa oleh perubahannya.

Satu-satunya cara yang saya lihat saat ini adalah kita bergiliran mengerjakan objek yang sama, tetapi sepertinya tidak nyaman, terutama karena semua pekerjaan yang kita lakukan saat ini ada di layar.

Apa yang biasanya dilakukan orang dalam situasi ini?

(Kami menggunakan Mercurial, BitBucket, dan SourceTree.)


1
Erm Peduli berkomentar mengapa saya diturunkan kurang dari 5 menit setelah bertanya? Saya tidak bisa membuat pertanyaan lebih baik jika saya tidak tahu apa yang salah dengannya.
Kaworu

2
Saya juga mengalami ini. Anda dapat menempatkan skrip dalam prob, tetapi adegan dll tampak lebih sulit
Ewan

1
Apakah file adegan ini file teks yang sulit untuk digabungkan atau mereka file biner yang lebih tidak mungkin? Jika mereka biner, Unity tampaknya menyediakan alat penggabungan (dan mungkin berbeda?) Untuk itu .
Nathan Cooper

@NathanCooper Mereka adalah binari sejauh yang saya tahu. Setidaknya mereka berperilaku seperti biner, dan membukanya di editor teks memberi saya beban omong kosong yang sama dengan file kompilasi lainnya. Saya tidak tahu tentang Smart Merge. Terima kasih!
Kaworu

Jawaban:


6

Anda dapat mencoba solusi berikut jika Anda menggunakan GitHub.

  1. Dalam kesatuan buka Edit-> Pengaturan Proyek -> Editor, lalu di Inspektur Pengaturan proyek.
  2. Ubah "Mode kontrol versi" menjadi "File meta yang terlihat".
  3. Ubah "Mode serialisasi aset" menjadi "Paksa teks".

Ini berfungsi baik untuk saya.


3

Sebagian besar sistem kontrol versi (VCS) dirancang untuk teks. Mereka biasanya memiliki fitur yang sangat kuat dan nyaman untuk membandingkan ( diff) dan menggabungkan kode sumber, dan beberapa alat bahkan dapat secara otomatis menggabungkan perubahan (dan melakukan pekerjaan yang layak untuk menebak bagaimana perubahan harus digabung dan pada titik mana pengembang harus diminta untuk melakukan penggabungan manual).

Akan lebih baik untuk memiliki dukungan yang lebih baik diffdan penggabungan file biner dari aplikasi masing-masing yang menggunakan file-file tersebut. Microsoft Word, misalnya, memungkinkan untuk membandingkan dua dokumen, dan meskipun jauh dari menjadi alat penggabungan yang nyaman, itu masih lebih baik daripada tidak sama sekali dan menyelamatkan saya berjam-jam pada banyak kesempatan. Sayangnya, fitur penggabungan biasanya diawasi dalam produk perangkat lunak, atau sulit diterapkan (bagaimana Anda memvisualisasikan diffadegan 3D?)

Ketika datang ke file biner, Anda mendapat sedikit bantuan dari VCS. Tidak hanya mereka tidak dapat menyimpan perubahan berturut-turut secara efisien, tetapi mereka juga tidak dapat membantu Anda menggabungkan perubahan.

Dua tahun lalu, saya mengajukan pertanyaan yang sangat mirip tentang penggunaan kontrol versi dalam perangkat lunak pengeditan video . Saya percaya bahwa jawaban yang diberikan untuk pertanyaan saya sebagian juga berlaku di sini, satu-satunya perbedaan (tetapi penting) adalah bahwa pertanyaan saya menyangkut file besar, sedangkan dalam kasus Anda, file biner mungkin relatif kecil.

Pendekatan yang Anda temukan, yaitu "bergiliran mengerjakan benda yang sama", adalah yang baik. Jika Anda tidak dapat bergabung, jangan bekerja secara paralel pada hal yang sama. Jika Anda bekerja di kantor yang sama, itu bisa mudah dilakukan. Jika tidak, sebagian besar sistem kontrol versi ( termasuk yang Anda gunakan ; itu juga dibahas di sini dalam konteks BitBucket) yang mendukung penguncian , yang terdiri dari pengguna VCS untuk memberi tahu, melalui sistem, bahwa ia sedang mengerjakan file yang diberikan tepat sekarang; pengguna lain dapat memuat versi terbaru file, tetapi mereka tidak diharapkan mengubahnya.

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.