Najlepsze praktyki kontroli wersji w Unity?

11

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.)

Kaworu
źródło
1
Erm. Chcesz skomentować, dlaczego otrzymałem głos w mniej niż 5 minut po zapytaniu? Nie mogę poprawić pytania, jeśli nie wiem, co jest z nim nie tak.
Kaworu
2
Na to też wpadłem. Skryptów nie można umieścić bez problemu, ale sceny itp. Wydają się trudniejsze
Ewan
1
Czy są to pliki tekstowe, które trudno scalić, czy też są to pliki binarne, które są mniej lub bardziej niemożliwe? Jeśli są to pliki binarne, Unity wydaje się zapewniać narzędzia do scalania (a może diff?) .
Nathan Cooper
@NathanCooper Są to pliki binarne, o ile wiem. Przynajmniej zachowują się jak pliki binarne, a otwarcie ich w edytorze tekstów daje mi taki sam ładunek mumbo-jumbo, jak w każdym innym skompilowanym pliku. Nie wiedziałem o Smart Merge. Dzięki!
Kaworu,

Odpowiedzi:

6

Możesz wypróbować następujące rozwiązanie, jeśli korzystasz z GitHub.

  1. W jedności otwórz Edycja-> Ustawienia projektu -> Edytor, a następnie w Inspektorze ustawień projektu.
  2. Zmień „Tryb kontroli wersji” na „Widoczne pliki meta”.
  3. Zmień „Tryb serializacji zasobów” na „Wymuś tekst”.

To działa dobrze dla mnie.

KamikyIT
źródło
3

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ę diffi łą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 sobie diffscenę 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.

Arseni Mourzenko
źródło