2017-08-23 10 views
0

Je travaille sur un projet de codage et utilise SourceTree et git pour suivre mes progrès. Je connais les bases mêmes de git mais je n'utilise que le bouton commit dans SourceTree pour valider mes modifications chaque fois que je change, ajoute ou supprime des fichiers dans mon projet.SourceTree - configure git pour comparer les fichiers codés ANSI précédemment validés

J'ai découvert qu'à un moment donné dans le passé, l'un des fichiers de code source contenait accidentellement des caractères NUL. Lorsque ce fichier a été enregistré, son encodage a été automatiquement changé de UTF-8 à ANSI. Je n'ai pas remarqué ces changements à ce moment et j'ai commis le fichier. J'ai fait quelques commits de plus avant de remarquer le mauvais encodage de fichier.

En ce moment j'ai changé le codage de dossier en UTF-8 et a commis le dossier encore. Maintenant, je peux voir les changements très bien à partir de ce commit. Cependant, SourceTree ne me montrera pas les changements dans tous les commits précédents tandis que le fichier a le codage ANSI.

J'ai cherché des moyens de résoudre ceci et j'ai essayé de changer le fichier .gitattributes selon this answer et this answer, cependant, SourceTree refuse toujours de me montrer les changements.

J'ai également trouvé que le git diffère peut être changé selon this answer, mais je ne sais pas comment intégrer ce changement afin que SourceTree puisse me montrer les changements précédents. Ma question: est-il possible de changer la façon dont git diffère les fichiers pour supporter le codage ANSI ou convertir automatiquement tous les fichiers en utf-8 pour que je puisse revoir les changements dans SourceTree pour mes commits précédents?

Répondre

0

J'ai trouvé une solution!

Dans le module complémentaire du fichier référentiel .gitattributes:

ProblemFile.c  diff=utf16_diff 
ProblemFile.c  set diff 

Dans le fichier add .gitconfig global:

[diff "utf16_diff"] 
    textconv = "iconv -f utf-16 -t utf-8" 

Maintenant montre bien tous les sources du commits précédentes!