0 votes

git->Processus->git round trip text encoding

J'essaie d'écrire un utilitaire pour migrer le code de notre contrôle de source personnalisé vers git.

Les messages "commit" de l'ancien système étaient ajoutés de manière incrémentale à un fichier texte dans le chemin du projet, j'utilise donc git pour différencier ces fichiers d'une version à l'autre, puis j'utilise ce différentiel comme message "commit".

Sans surprise, j'ai des difficultés avec les accents.

La chaîne de test est la suivante : éèàçüûöôëê

  1. Le fichier texte source est (d'après le Bloc-notes) en "ANSI".
  2. Si je fais un diff dans msysgit, je vois ceci <E9><E8><E0><E7><FC><FB><F6><F4><EB><EA>
  3. Lorsque je lance un appel de processus à git avec la même commande diff (voir este question), j'obtiens :
    1. ÚÞÓþ³¹÷¶ÙÛ
    2. ���������� con StandardOutputEncoding = Encoding.UTF8 , par este question.
    3. éèàçüûöôëê con StandardOutputEncoding = Encoding.Default

Jusqu'à présent, tout va bien, mais si j'envoie éèàçüûöôëê en tant que message de livraison, git me dit Warning: commit message does not conform to UTF-8.

Des indications sur la manière de faire fonctionner ce système ? Cette question parle aussi de définir l'encodage sur StandardInput, mais mon message de validation est dans les arguments, il ne fait pas partie de l'entrée.

(Git dit aussi que je peux définir la variable de configuration i18n.commitencoding mais je préfère respecter le format git si je le peux)

0voto

Benjol Points 16334

On dirait que ça n'a rien à voir avec .net ou Process, ou peut-être même git. Pour autant que je sache, il n'y a aucun moyen de taper des accents en bash de toute façon.

Et malgré les avertissements de git, les messages de commit sont lisibles par d'autres outils (gitk), donc peut-être que tout va bien.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X