2010-10-21 18 views
16

¿Hay alguna manera de habilitar el soporte de color para Mercurial en Powershell en Windows 7? La página ColorExtension dice para añadirExtensión de color Mercurial en Windows Powershell

[color] 
mode = win32 

a su archivo .hgrc, pero no parece hacer una diferencia.

Ejecutando hg status muestra varios archivos que aún no se han agregado al repositorio, y creo que deberían tener un color rosado (basado en otros terminales que he visto). Esto es lo que se muestra en su lugar:

←[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 

Respuesta

15

Es probable que tenga que actualizar a la última de mercurio (1,6 .4). La versión 1.5.4 en particular no hizo el color win32 correctamente (y ha habido bastantes errores relacionados con el color y relacionados con win32 corregidos en compilaciones recientes).

También debe asegurarse de no especificar el modo de color ANSI. Puede forzar Win32:

[color] 
mode = win32 
+0

Buen trabajo, no me había dado cuenta de que estaba ejecutando una versión anterior. – derekerdmann

+0

No funciona en Mercurial 2.8. Ver mi respuesta para más información. –

4

¿También se aseguró de habilitar el ColorExtension? Es necesario esto en su .hgrc también:

[extensions] 
color = 

Si eso es allí también puede asegurarse de que sus ajustes están siendo recogidos con:

hg --debug showconfig 
+0

Sí, la extensión está habilitada. La configuración aparece muy bien, así que no estoy seguro de por qué no se muestran. – derekerdmann

0

ColorExtension no funciona en PowerShell partir de la versión 2.8, consulte https://www.mercurial-scm.org/pipermail/mercurial-devel/2013-November/054620.html:

Al utilizar colores de Windows PowerShell no funciona (aunque funciona perfectamente bien con cmd.exe) .

Parece que, aunque ha sido llamado, _kernel32.SetConsoleTextAttribute no tiene ningún efecto cuando se ejecuta dentro de PowerShell.

Esto es Mercurial bug 4093 que se ha resuelto como "no se solucionará". Una solución es usar ansicon. Ver this respuesta para más información.

+0

Vea también https://github.com/adoxa/ansicon/issues/13 y ... por el amor de Dios, use ConEmu (que tiene soporte de ANSI) http://code.google.com/p/conemu-maximus5/ – Jaykul

Cuestiones relacionadas