¿Cómo puedo ver visualmente los cambios realizados en una escena desde la última confirmación de git?


11

Me gustaría ver los cambios realizados en una escena (archivo .unity) antes de comprometerlos a git.

He examinado varias soluciones de GIT / Unity, pero todas están hechas para fusionar cambios y no para mostrar diferencias con la última versión.

El problema con los archivos de escena es que usan GUID que apuntan a otros activos y cuando abro un diff para un archivo de escena realmente no puedo sacar nada de él.

Por ejemplo: git diff

En cambio, me gustaría ver algo como esto: diferencia visual

¿Existe algo que haga esto?


No estoy 100% seguro en este momento, así que no estoy publicando como respuesta, pero creo que Sourcetree muestra la diferencia. Siempre que haya configurado su proyecto para la serialización de texto.
Christian

1
Durante el tiempo, acabo de aprender a ver la escena y prefabricar archivos ellos mismos. Hoy en día puedo decir con bastante precisión que hay una morena, una rubia, una pelirroja ... Git y Unity realmente no tienen nada que ver entre sí, por lo que ninguno de los dos proporcionará una herramienta como esta. Unity quiere promover su propia colaboración basada en la nube.
Lasse

Podría intentar desarrollar tal cosa yo mismo si no hay una solución preparada.
lilotop

77
Hazlo. Póngalo en la tienda de activos. Lucro.
MichaelHouse

1
@Lasse, en realidad, están trabajando en dicha herramienta. Estoy bastante seguro de que está en etapas beta (me invitaron a probarlo, pero no son muy reservados al respecto). Supongo que debería salir en un mes o dos.
Gnemlock

Respuestas:


1

Me gustaría ver los cambios realizados en una escena (archivo .unity) antes de comprometerlos a git.

Cualquier herramienta decente de git hará esto siempre que el archivo de escena no sea binario ; pero, como mencionó, las referencias GUID dificultan la lectura. Si la escena es binaria, la serialización puede actualizarse en Edit -> Project Settings -> Editor -> Asset Serialization; pero, tenga cuidado: puede ocurrir pérdida de datos (vea el comentario de Draco18 a continuación).

He examinado varias soluciones de GIT / Unity, pero todas están hechas para fusionar cambios y no para mostrar diferencias con la última versión.

Ver los cambios realizados en un solo archivo es una de las características principales de git log. De hecho, hay una pregunta de stackoverflow sobre eso. Básicamente usarías algo como

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

para mostrar el historial de ese archivo. Agregar -1para mostrar los cambios más recientes en el archivo especificado. Omita -1y use -ppara ver el parche realizado para cada confirmación que modificó ese archivo. Recomiendo leer la pregunta de stackoverflow antes de tocar la documentación de git-log porque es muy larga .

En cambio, me gustaría ver algo como esto:

[escena gráfica diff]

¿Existe algo que haga esto?

Por lo que puedo decir, no . Dicho esto, Unity for Git parece ser el lugar natural para encontrarlo. Como está en alfa, debe crear un problema allí para solucionarlo. Dado que es único para aplicar git diff en los gráficos de escena intrínsecos de la unidad, sospecho que será muy relevante allí.


Any decent git tool will do this... siempre que el archivo no sea binario. Que se puede configurar (Editar -> Configuración del proyecto -> Editor -> Serialización de activos). Tengo dos proyectos en este momento, uno donde el archivo de escena es datos binarios y otro donde es texto. El texto se modificó debido a un activo que importé que alentó a cambiar a "Forzar texto" debido a algún aspecto de la plataforma de complemento / activo / destino que funcionó mejor. ADVERTENCIA: cambiar los modos puede provocar la pérdida de datos.
Draco18s ya no confía en SE

-4

Le recomendaría que solo use Git con Bitbucket (¡como origen de inserción!) Ya que proporciona una GUI realmente agradable que le permite ver la representación gráfica de su rama y el historial de confirmación, así como los cambios dentro de los archivos de texto donde incluso puede ver cambios en el código en rojo y verde, además de muchas otras características agradables de flujo de trabajo.


Creo que entendiste totalmente mal mi pregunta. Estoy hablando de archivos de escena basados ​​en texto que contienen referencias guidas a otros objetos de la unidad. A menos que haya algún tipo de cliente inteligente de bitbucket del que no esté al tanto, que pueda resolver esas referencias, aquí estás totalmente fuera de lugar.
lilotop
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.