Jestem trochę zdezorientowany, jak używać kontroli wersji w Unity, szczególnie z obiektami takimi jak sceny lub prefabrykaty, które nie są tylko kodem.
Mieliśmy ostatnio problem, gdy wraz z kolegą pracowaliśmy nad różnymi częściami tej samej sceny. co spowodowało konflikty, rozgałęzienie i scalenie się wielu.
W końcu i tak moje zmiany zostały zastąpione przez jego zmiany.
Jedyny sposób, jaki widzę w tej chwili, to praca na zmianę nad tymi samymi obiektami, ale nie wydaje się to zbyt wygodne, zwłaszcza, że cała praca, którą obecnie wykonujemy, odbywa się w scenach.
Co ludzie zwykle robią w takich sytuacjach?
(Używamy Mercurial, BitBucket i SourceTree.)
version-control
unity3d
Kaworu
źródło
źródło
Odpowiedzi:
Możesz wypróbować następujące rozwiązanie, jeśli korzystasz z GitHub.
To działa dobrze dla mnie.
źródło
Większość systemów kontroli wersji (VCS) zaprojektowano z myślą o tekście. Zazwyczaj mają one bardzo wydajne i wygodne funkcje do porównywania (
diff
) i scalania kodu źródłowego, a niektóre narzędzia mogą nawet automatycznie scalać zmiany (i dobrze się zgadują, w jaki sposób należy scalić zmiany i w którym momencie należy poprosić programistę o wykonanie scalanie ręczne).Byłoby wspaniale mieć lepszą obsługę
diff
i łączenie plików binarnych z odpowiednich aplikacji korzystających z tych plików. Na przykład Microsoft Word umożliwia porównywanie dwóch dokumentów i chociaż nie jest to wygodne narzędzie do łączenia, jest jednak lepsze niż nic i wielokrotnie oszczędzało mi godziny. Niestety funkcja scalania jest zwykle nadzorowana w oprogramowaniu lub trudna do wdrożenia (jak wyobrażasz sobiediff
scenę 3D?)Jeśli chodzi o pliki binarne, VCS otrzymuje niewielką pomoc. Nie tylko nie są w stanie efektywnie przechowywać kolejnych zmian, ale także nie mogą pomóc w scaleniu zmian.
Dwa lata temu zadałem bardzo podobne pytanie dotyczące kontroli wersji w oprogramowaniu do edycji wideo . Sądzę, że odpowiedzi częściowo udzielone na moje pytanie również tutaj mają zastosowanie, jedyną (ale ważną) różnicą jest to, że moje pytanie dotyczyło dużych plików, podczas gdy w twoim przypadku pliki binarne są prawdopodobnie stosunkowo małe.
Podejście, które znalazłeś, czyli „praca na zmianę nad tymi samymi obiektami”, jest dobre. Jeśli nie możesz scalić, nie pracuj równolegle nad tym samym. Jeśli pracujesz w tym samym biurze, może to być łatwe. Jeśli nie, większość systemów kontroli wersji (w tym ten, którego używasz ; jest to również omówione tutaj w kontekście BitBucket) obsługuje blokowanie , które polega na tym, że użytkownik VCS informuje przez system, że pracuje nad danym plikiem poprawnie teraz; inni użytkownicy mogą załadować najnowszą wersję pliku, ale nie oczekuje się, że to zmieni.
źródło