Comment puis-je voir visuellement les modifications apportées à une scène depuis le dernier commit git

11

J'aimerais voir les modifications apportées dans une scène (fichier .unity) avant de les valider dans git.

J'ai examiné plusieurs solutions GIT / Unity mais toutes sont faites pour fusionner les modifications et non pour afficher un diff avec la dernière version.

Le problème avec les fichiers de scène est qu'ils utilisent des GUID qui pointent vers d'autres ressources et lorsque j'ouvre un diff pour un fichier de scène, je ne peux vraiment rien en faire.

Par exemple: git diff

Au lieu de cela, j'aimerais voir quelque chose comme ceci: diff visuel

Existe-t-il quelque chose qui fait cela?

lilotop
la source
Je ne suis pas sûr à 100% en ce moment, donc je ne poste pas comme réponse, mais je pense que Sourcetree montre la différence. À condition que vous ayez défini votre projet sur la sérialisation de texte.
Christian
1
Pendant le temps, je viens d'apprendre à regarder la scène et à préfabriquer les fichiers eux-mêmes. Aujourd'hui, je peux dire avec assez de précision qu'il y a une brune, une blonde, une rousse ... Git et Unity n'ont vraiment rien à voir l'un avec l'autre, donc aucun d'eux ne fournira probablement un outil comme celui-ci. Unity veut promouvoir sa propre chose basée sur le cloud de collaboration.
Lasse
Je pourrais essayer de développer une telle chose moi-même s'il n'y a pas de solution prête.
lilotop
7
Fais-le. Mettez-le sur le magasin d'actifs. Profit.
MichaelHouse
1
@Lasse, en fait, ils travaillent sur un tel outil. Je suis à peu près sûr que c'est en phase bêta (j'ai été invité à le tester, mais ils ne sont pas exactement secrets à ce sujet). Je pense qu'il devrait sortir d'ici un mois ou deux.
Gnemlock

Réponses:

1

J'aimerais voir les modifications apportées dans une scène (fichier .unity) avant de les valider dans git.

Tout outil git décent fera cela à condition que le fichier de scène ne soit pas binaire ; mais, comme vous l'avez mentionné, les références GUID le rendent difficile à lire. Si la scène est binaire, la sérialisation peut être mise à jour dans Edit -> Project Settings -> Editor -> Asset Serialization; mais, soyez averti: une perte de données peut se produire (voir le commentaire de Draco18 ci-dessous).

J'ai examiné plusieurs solutions GIT / Unity mais toutes sont faites pour fusionner les modifications et non pour afficher un diff avec la dernière version.

Voir les modifications apportées à un seul fichier est l'une des principales fonctionnalités de git log. En fait, il y a une question de stackoverflow à ce sujet. Fondamentalement, vous utiliseriez quelque chose comme

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

pour afficher l'historique de ce fichier. Ajouter -1pour afficher les modifications les plus récentes du fichier spécifié. Ommitez -1et utilisez -ppour voir le correctif fait pour chaque commit qui a modifié ce fichier. Je recommande de lire la question stackoverflow avant de toucher à la documentation git-log car elle est très longue .

Au lieu de cela, j'aimerais voir quelque chose comme ceci:

[diff de graphe de scène]

Existe-t-il quelque chose qui fait cela?

Pour autant que je sache, non . Cela étant dit, Unity for Git semble être l'endroit naturel pour le trouver. Comme il est en alpha, vous devez y créer un problème pour y remédier. Comme il est unique d'appliquer git diff sur les graphiques de scènes intrinsèques de l'unité, je soupçonne que cela sera fortement pertinent.

KareemElashmawy
la source
Any decent git tool will do this... à condition que le fichier ne soit pas binaire. Qui peut être défini (Édition -> Paramètres du projet -> Éditeur -> Sérialisation des actifs). J'ai deux projets en ce moment, un où le fichier de scène est des données binaires et un où c'est du texte. Le texte a été modifié en raison d'un élément que j'ai importé, ce qui a encouragé le passage à "Forcer le texte" en raison d'un meilleur aspect du plugin / de l'élément / de la plate-forme cible. AVERTISSEMENT: le changement de mode peut entraîner une perte de données.
Draco18 ne font plus confiance au SE
-4

Je vous recommande d'utiliser simplement Git avec Bitbucket (comme origine push!) Car il fournit une interface graphique vraiment agréable qui vous permet de voir la représentation graphique de votre branche et de l'historique des validations ainsi que les modifications dans les fichiers texte où vous pouvez même voir les modifications dans le code en rouge et vert ainsi que de nombreuses autres fonctionnalités de flux de travail intéressantes.

Lézard fourtwenty
la source
Je pense que vous avez totalement mal compris ma question. Je parle de fichiers de scène basés sur du texte qui contiennent des références guidées à d'autres objets d'unité. À moins qu'il n'y ait une sorte de client bitbucket intelligent dont je ne suis pas au courant, qui peut résoudre ces références - vous êtes totalement hors de portée ici.
lilotop