Jak mogę wizualnie zobaczyć zmiany dokonane w scenie od ostatniego zatwierdzenia przez git

11

Chciałbym zobaczyć zmiany dokonane w scenie (plik .unity) przed zatwierdzeniem ich do git.

Przyjrzałem się kilku rozwiązaniom GIT / Unity, ale wszystkie zostały stworzone do łączenia zmian, a nie do pokazywania różnic w stosunku do ostatniej wersji.

Problem z plikami scen polega na tym, że używają identyfikatorów GUID, które wskazują na inne zasoby, a kiedy otwieram plik różnicowy dla pliku sceny, nie mogę naprawdę nic z niego zrobić.

Na przykład: git diff

Zamiast tego chciałbym zobaczyć coś takiego: różnicę wizualną

Czy istnieje coś, co to robi?

lilotop
źródło
Nie jestem teraz w 100% pewien, więc nie zamieszczam odpowiedzi, ale myślę, że Sourcetree pokazuje różnicę. Pod warunkiem, że ustawiłeś projekt na serializację tekstu.
Christian
1
Z czasem właśnie nauczyłem się oglądać scenę i same prefabrykować pliki. W dzisiejszych czasach mogę z dość dużą dokładnością stwierdzić, że jest brunett, blondynka, ruda ... Git and Unity naprawdę nie mają ze sobą nic wspólnego, więc żadne z nich prawdopodobnie nie dostarczy takiego narzędzia. Unity chce promować własną współpracę opartą na chmurze.
Lasse
Mogę spróbować opracować coś takiego, jeśli nie ma gotowego rozwiązania.
lilotop
7
Zrób to. Umieść w sklepie zasobów. Zysk.
MichaelHouse
1
@Lasse, w rzeczywistości pracują nad takim narzędziem. Jestem prawie pewien, że jest w fazie beta (zostałem zaproszony do przetestowania go, ale nie są do końca tajni). Spekuluję, że powinno to zostać wydane w ciągu miesiąca lub dwóch.
Gnemlock,

Odpowiedzi:

1

Chciałbym zobaczyć zmiany dokonane w scenie (plik .unity) przed zatwierdzeniem ich do git.

Każde przyzwoite narzędzie git zrobi to, pod warunkiem że plik sceny nie jest binarny ; ale, jak wspomniałeś, odniesienia do GUID utrudniają ich odczytanie. Jeśli scena jest binarna, serializacja może zostać zaktualizowana w Edit -> Project Settings -> Editor -> Asset Serialization; ale ostrzegam: może wystąpić utrata danych (patrz komentarz Draco18 poniżej.)

Przyjrzałem się kilku rozwiązaniom GIT / Unity, ale wszystkie zostały stworzone do łączenia zmian, a nie do pokazywania różnic w stosunku do ostatniej wersji.

Widok zmian wprowadzonych w jednym pliku jest jedną z podstawowych funkcji git log. W rzeczywistości istnieje pytanie o przepełnienie stosu . Zasadniczo użyłbyś czegoś takiego

git log --follow path/to/scene.unity

aby wyświetlić historię tego pliku. Dodaj, -1aby wyświetlić najnowsze zmiany w określonym pliku. Ommit -1i użyj, -paby zobaczyć łatkę wykonaną dla każdego zatwierdzenia, które zmodyfikowało ten plik. Zalecam przeczytanie pytania o przepełnieniu stosu przed dotknięciem dokumentacji git-log, ponieważ jest on bardzo długi .

Zamiast tego chciałbym zobaczyć coś takiego:

[diff wykresu sceny]

Czy istnieje coś, co to robi?

O ile mogę powiedzieć, nie . Biorąc to pod uwagę, Unity for Git wydaje się naturalnym miejscem do jego znalezienia. Ponieważ jest w wersji alfa, powinieneś utworzyć tam problem, aby rozwiązać ten problem. Ponieważ jest to unikalne zastosowanie git diff do wewnętrznych wykresów sceny jedności, podejrzewam, że będzie to bardzo istotne.

KareemElashmawy
źródło
Any decent git tool will do this... pod warunkiem, że plik nie jest binarny. Które można ustawić (Edycja -> Ustawienia projektu -> Edytor -> Serializacja zasobów). Mam teraz dwa projekty, jeden, w którym plik sceny to dane binarne, a drugi to tekst. Jeden tekst został zmieniony z powodu importu zasobu, który zachęcał do zmiany na „Wymuś tekst”, ponieważ niektóre aspekty wtyczki / zasobu / platformy docelowej działały lepiej. OSTRZEŻENIE: zmiana trybów może spowodować utratę danych.
Draco18s nie ufa już
-4

Polecam, abyś po prostu używał Git z Bitbucket (jako push push!), Ponieważ zapewnia naprawdę ładny interfejs GUI, który pozwala zobaczyć graficzną reprezentację twojej gałęzi i historię zatwierdzeń, a także zmiany w plikach tekstowych, w których możesz nawet zobaczyć zmiany w kod w kolorze czerwonym i zielonym oraz wiele innych fajnych funkcji przepływu pracy.

Lizardman czterdzieści
źródło
Chyba całkowicie źle zrozumiałeś moje pytanie. Mówię o plikach scen opartych na tekście, które zawierają odniesienia do innych obiektów jedności. Chyba że istnieje jakiś inteligentny klient bitbucket, o którym nie wiem, który może rozwiązać te odniesienia - tutaj jesteś zupełnie nie w bazie.
lilotop