git diff encoding issue when running via Hyper-V

Polytropon freebsd at edvax.de
Wed Sep 30 14:57:55 UTC 2015


On Wed, 30 Sep 2015 14:31:36 +0000, Dangling Pointer wrote:
> Hi, 
> When I run FreeBSD 10.1 or 10.2 x64 via Hyper-V on Windows 10, the
> encoding of `git diff` command emits cluttered text (with lots of
> "ESC[m" noise) like:
> ESC[31m-setup_dirs()ESC[m
> ESC[32m+ESC[mESC[32msetup_dirs2()ESC[m
> instead of:
> -setup_dirs()+setup_dirs2()
> I don't know what to make of it.

This looks like color codes...



> Can somebody please let me know if this is a bug or do I need to
> configure something?

The pager (and the attached terminal emulator) should be able to
convert those codes (Escape, [, code sequence) into something
meaningful, usually a change of display attributes such as color,
inverse, underlined (or whatever the terminal supports). In your
case, those are displayed as-is. Standard FreeBSD installations
usually display them as desired:

	-setup_dirs()		<--- red text
	+setup_dirs2()		<--- green text

Note that "ESC" is wrong (or probably just a display replacement
for a non-printable character): The character has to be the ESC
code (ASCII #27 or 0x1b), as seen here:

00000000  1b 5b 33 31 6d 2d 73 65  74 75 70 5f 64 69 72 73  |.[31m-setup_dirs|
00000010  28 29 1b 5b 6d 0a 1b 5b  33 32 6d 2b 1b 5b 6d 1b  |().[m..[32m+.[m.|
00000020  5b 33 32 6d 73 65 74 75  70 5f 64 69 72 73 32 28  |[32msetup_dirs2(|
00000030  29 1b 5b 6d 0a                                    |).[m.|

Maybe your input data got mangled somehow and the ESC character
replaced by the string "ESC", just as hexdump represents it as
a "." in the ASCII output column?



-- 
Polytropon
Magdeburg, Germany
Happy FreeBSD user since 4.0
Andra moi ennepe, Mousa, ...


More information about the freebsd-questions mailing list