Wie kann ich visuell Änderungen sehen, die an einer Szene seit dem letzten Git-Commit vorgenommen wurden?

11

Ich möchte die Änderungen sehen, die in einer Szene (.unity-Datei) vorgenommen wurden, bevor ich sie an git übertrage.

Ich habe mehrere GIT / Unity-Lösungen untersucht, aber alle dienen zum Zusammenführen von Änderungen und nicht zum Anzeigen eines Unterschieds mit der letzten Version.

Das Problem mit Szenendateien ist, dass sie GUIDs verwenden, die auf andere Assets verweisen, und wenn ich ein Diff für eine Szenendatei öffne, kann ich daraus nichts wirklich machen.

Beispielsweise: Git Diff

Stattdessen würde ich gerne so etwas sehen: visueller Unterschied

Gibt es etwas, das dies tut?

Lilotop
quelle
Ich bin mir momentan nicht 100% sicher, daher poste ich nicht als Antwort, aber ich denke, Sourcetree zeigt den Unterschied. Vorausgesetzt, Sie haben Ihr Projekt auf Textserialisierung eingestellt.
Christian
1
Im Laufe der Zeit habe ich gerade gelernt, die Szene und die vorgefertigten Dateien selbst zu betrachten. Heutzutage kann ich ziemlich genau sagen, dass es eine Brünette, eine Blondine, eine Rothaarige gibt ... Git und Unity haben wirklich nichts miteinander zu tun, daher werden beide wahrscheinlich kein solches Tool bereitstellen. Unity möchte seine eigene Cloud-basierte Zusammenarbeit fördern.
Lasse
Ich könnte versuchen, so etwas selbst zu entwickeln, wenn es keine fertige Lösung gibt.
Lilotop
7
Mach es. Legen Sie es in den Asset Store. Profitieren.
MichaelHouse
1
@Lasse, eigentlich arbeiten sie an einem solchen Tool. Ich bin mir ziemlich sicher, dass es sich in der Beta-Phase befindet (ich wurde eingeladen, es zu testen, aber sie sind nicht genau geheim). Ich würde spekulieren, dass es innerhalb von ein oder zwei Monaten herauskommen sollte.
Gnemlock

Antworten:

1

Ich möchte die Änderungen sehen, die in einer Szene (.unity-Datei) vorgenommen wurden, bevor ich sie an git übertrage.

Jedes anständige Git-Tool wird dies tun, vorausgesetzt, die Szenendatei ist nicht binär . Wie Sie bereits erwähnt haben, erschweren die GUID-Referenzen das Lesen. Wenn die Szene binär ist, kann die Serialisierung in aktualisiert werden Edit -> Project Settings -> Editor -> Asset Serialization. aber seien Sie gewarnt: Datenverlust auftreten kann (siehe Draco18s Kommentar weiter unten.).

Ich habe mehrere GIT / Unity-Lösungen untersucht, aber alle dienen zum Zusammenführen von Änderungen und nicht zum Anzeigen eines Unterschieds mit der letzten Version.

Das Anzeigen der an einer einzelnen Datei vorgenommenen Änderungen ist eine der Hauptfunktionen von git log. Tatsächlich gibt es dazu eine Frage zum Stapelüberlauf . Grundsätzlich würden Sie so etwas wie verwenden

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

um den Verlauf dieser Datei anzuzeigen. Hinzufügen -1, um die letzten Änderungen an der angegebenen Datei anzuzeigen. Lassen Sie den Patch aus -1und verwenden Sie ihn -p, um ihn für jedes Commit anzuzeigen , das diese Datei geändert hat. Ich empfehle, die Stackoverflow-Frage durchzulesen, bevor Sie die Git-Log-Dokumentation berühren, da sie sehr lang ist .

Stattdessen würde ich gerne so etwas sehen:

[Szenendiagramm diff]

Gibt es etwas, das dies tut?

Soweit ich das beurteilen kann, nein . Davon abgesehen scheint Unity for Git der natürliche Ort zu sein, um es zu finden. Da es sich um Alpha handelt, sollten Sie dort ein Problem erstellen, um dies zu beheben. Da es einzigartig ist, Git Diff auf die intrinsischen Szenendiagramme von Unity anzuwenden, vermute ich, dass es dort stark relevant ist.

KareemElashmawy
quelle
Any decent git tool will do this... vorausgesetzt, die Datei ist nicht binär. Was eingestellt werden kann (Bearbeiten -> Projekteinstellungen -> Editor -> Asset-Serialisierung). Ich habe gerade zwei Projekte, eines, bei dem es sich bei der Szenendatei um Binärdaten handelt, und eines, bei dem es sich um Text handelt. Der Text wurde aufgrund eines von mir importierten Assets geändert, das dazu ermutigte, zu "Text erzwingen" zu wechseln, da einige Aspekte der Plugin- / Asset- / Zielplattform eine bessere Leistung erbrachten. WARNUNG: Das Ändern des Modus kann zu Datenverlust führen.
Draco18s vertraut SE
-4

Ich würde Ihnen empfehlen, Git nur mit Bitbucket (als Push-Ursprung!) Zu verwenden, da es eine wirklich schöne GUI bietet, mit der Sie die grafische Darstellung Ihres Zweigs und des Commit-Verlaufs sowie Änderungen in den Textdateien sehen können, in denen Sie sogar Änderungen sehen können Der Code in Rot und Grün sowie viele andere nützliche Workflow-Funktionen.

Echsenmensch vierundzwanzig
quelle
Ich denke, Sie haben meine Frage völlig falsch verstanden. Ich spreche von textbasierten Szenendateien, die Guid-Verweise auf andere Unity-Objekte enthalten. Es sei denn, es gibt eine Art intelligenten Bitbucket-Client, den ich nicht kenne, der diese Referenzen auflösen kann - Sie sind hier völlig daneben.
Lilotop