Come posso vedere visivamente le modifiche apportate a una scena dall'ultimo commit git


11

Mi piacerebbe vedere le modifiche apportate in una scena (file .unity) prima di impegnarli a git.

Ho esaminato diverse soluzioni GIT / Unity ma tutte sono state fatte per unire le modifiche e non per mostrare un diff con l'ultima versione.

Il problema con i file di scena è che usano GUID che puntano ad altre risorse e quando apro un diff per un file di scena non riesco davvero a ricavarne nulla.

Per esempio: git diff

Invece, mi piacerebbe vedere qualcosa del genere: differenza visiva

Esiste qualcosa che esiste?


Non sono sicuro al 100% in questo momento, quindi non sto postando come risposta, ma penso che Sourcetree mostri il diff. A condizione che il progetto sia stato impostato sulla serializzazione di testo.
Christian

1
Nel corso del tempo ho appena imparato a guardare la scena e i file prefabbricati stessi. Al giorno d'oggi posso dire con precisione che c'è una brunetta, una bionda, una rossa ... Git e Unity non hanno davvero nulla a che fare l'una con l'altra, quindi probabilmente entrambi non forniranno uno strumento come questo. Unity vuole promuovere la propria collaborazione basata sul cloud.
Lasse

Potrei provare a sviluppare una cosa del genere se non ci fosse una soluzione pronta.
lilotop

7
Fallo. Mettilo nel negozio di asset. Profitto.
MichaelHouse

1
@Lasse, in realtà, stanno lavorando a un tale strumento. Sono abbastanza sicuro che sia nelle fasi beta (sono stato invitato a testarlo, ma non sono esattamente segreti su di esso). L'ipotesi dovrebbe essere fuori entro un mese o due.
Gnemlock,

Risposte:


1

Mi piacerebbe vedere le modifiche apportate in una scena (file .unity) prima di impegnarli a git.

Qualsiasi strumento git decente lo farà a condizione che il file di scena non sia binario ; ma, come hai detto, i riferimenti GUID rendono difficile la lettura. Se la scena è binaria, la serializzazione può essere aggiornata in Edit -> Project Settings -> Editor -> Asset Serialization; ma attenzione: potrebbe verificarsi una perdita di dati (vedere il commento di Draco18 di seguito).

Ho esaminato diverse soluzioni GIT / Unity ma tutte sono state fatte per unire le modifiche e non per mostrare un diff con l'ultima versione.

Vedere le modifiche apportate a un singolo file è una delle caratteristiche principali di git log. In effetti, c'è una domanda StackOverflow su questo. Fondamentalmente useresti qualcosa del genere

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

per visualizzare la cronologia di quel file. Aggiungi -1per visualizzare le modifiche più recenti al file specificato. Ommit -1e usa -pper vedere la patch fatta per ogni commit che ha modificato quel file. Consiglio di leggere la domanda stackover prima di toccare la documentazione di git-log perché è molto lunga .

Invece, mi piacerebbe vedere qualcosa del genere:

[diff grafico scena]

Esiste qualcosa che esiste?

Per quanto ne so, no . Detto questo, Unity for Git sembra essere il luogo naturale dove trovarlo. Dal momento che è in alpha, dovresti creare un problema lì per risolvere questo problema. Dal momento che è unico nell'applicazione di git diff sui grafici delle scene intrinseche dell'unità, ho il sospetto che sarà molto rilevante lì.


Any decent git tool will do this... purché il file non sia binario. Che può essere impostato (Modifica -> Impostazioni progetto -> Editor -> Serializzazione risorse). Al momento ho due progetti, uno in cui il file di scena è costituito da dati binari e uno in cui è testo. Il testo è stato modificato a causa di un asset che ho importato che ha incoraggiato il passaggio a "Force Text" a causa di alcuni aspetti della piattaforma plug-in / asset / target migliorata. ATTENZIONE: la modifica delle modalità può comportare la perdita di dati.
Draco18s non si fida più di SE

-4

Ti consiglierei di usare Git con Bitbucket (come push origin!) In quanto fornisce una GUI davvero carina che ti consente di vedere la rappresentazione grafica del tuo ramo e commettere la cronologia, nonché le modifiche all'interno dei file di testo in cui puoi persino vedere le modifiche in il codice in rosso e verde, oltre a molte altre belle funzioni del flusso di lavoro.


Penso che tu abbia frainteso totalmente la mia domanda. Sto parlando di file di scena basati su testo che contengono riferimenti guid ad altri oggetti di unità. A meno che non ci sia una sorta di client bitbucket intelligente di cui non sono a conoscenza, in grado di risolvere quei riferimenti - qui sei totalmente fuori base.
lilotop
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.