2010-10-21 4 views
16

Existe-t-il un moyen d'activer la prise en charge des couleurs pour Mercurial dans Powershell sous Windows 7? La page ColorExtension dit d'ajouterExtension de couleur Mercurial dans Windows Powershell

[color] 
mode = win32 

à votre fichier .hgrc, mais il ne semble pas faire une différence.

L'exécution hg status montre plusieurs fichiers qui n'ont pas encore été ajoutés au dépôt, et je crois qu'ils devraient avoir une couleur rose (basée sur d'autres terminaux que j'ai vus). C'est ce qui s'affiche à la place:

←[0;35;1;4m? samplefile.php←[0m 
←[0;35;1;4m? anotherfile.php←[0m 
←[0;35;1;4m? derpderp.xml←[0m 
←[0;35;1;4m? derp_model.php←[0m 
←[0;35;1;4m? stillnocolor.php←[0m 

Répondre

15

Vous avez probablement besoin de mettre à jour la dernière mercurial (1.6 .4). La version 1.5.4 en particulier n'a pas fait correctement la couleur win32 (et il y a eu quelques bogues relatifs à la couleur et au win32 corrigés dans les versions récentes).

Vous devez également vous assurer que vous ne spécifiez pas le mode couleur ANSI. Vous pouvez forcer win32:

[color] 
mode = win32 
+0

Belle prise, je n'avais pas réalisé que je courais une version plus ancienne. – derekerdmann

+0

Ne fonctionne pas dans Mercurial 2.8. Voir ma réponse pour plus d'informations. –

4

Avez-vous également veillé à activer ColorExtension? Vous avez besoin dans votre .hgrc aussi:

[extensions] 
color = 

Si c'est là aussi, vous pouvez vous assurer que vos paramètres sont pris en charge avec:

hg --debug showconfig 
+0

Oui, l'extension est activée. Les paramètres s'affichent très bien, donc je ne sais pas pourquoi ils ne sont pas affichés. – derekerdmann

0

ColorExtension ne fonctionne pas dans PowerShell de la version 2.8, voir https://www.mercurial-scm.org/pipermail/mercurial-devel/2013-November/054620.html:

Lorsque vous utilisez la couleur de Windows PowerShell ne fonctionne pas (même si cela fonctionne parfaitement bien avec cmd.exe) .

Apparemment, bien qu'appelé, _kernel32.SetConsoleTextAttribute n'a aucun effet lors de l'exécution dans PowerShell.

Ceci est Mercurial bug 4093 qui a été résolu en tant que "ne corrigera pas". Une solution de contournement consiste à utiliser ansicon. Voir this pour plus d'informations.

+0

Voir aussi https://github.com/adoxa/ansicon/issues/13 et ... pour l'amour de Dieu, utilisez ConEmu (qui a le support ANSI) http://code.google.com/p/conemu-maximus5/ – Jaykul

Questions connexes