Subject: Re: git gui blame utf-8 bugs

From: "Shawn O. Pearce" <[email-masked]>
Date: Fri, 14 Dec 2007 01:47:09 -0500

Finn Arne Gangstad <[email-masked]> wrote:
> git gui has some utf-8 bugs:

It has several.  :-)
 
> If you do git gui blame <file>, and the file contains utf-8 text,
> the lines are not parsed as utf-8, but seemingly as iso-8859-1 instead.

Right.  git-gui is keying off the environment setting for LANG, so I
guess its set to iso-8859-1 on your system but you are working with a
utf-8 file.  We've talked about using something like .gitattributes
to store encoding hints, or to just put a global gui setting in
~/.gitconfig but neither has had any patches written for it.

UTF-8 is seemingly the most common encoding that git-gui is mangling
so maybe we should be defaulting to utf-8 until someone codes a
more intelligent patch.

> Also, the hovering comment is INITIALLY shown garbled (both Author and
> commit message), but if you click on a line, so that the commit
> message is shown in the bottom window, the hovering message is
> magically corrected to utf-8.
> 
> The text in the lower window (showing specific commits) seems to
> always be handled correctly.

That's a "feature".  :-)

What's happening here is the initial hovering message is obtained
from the machine formatted output from `git blame --incremental`
and in that format there is no encoding header so I'm just ignoring
any encoding problems.

Later when you click on a line it does `git cat-file commit $sha1`
and gets the proper encoding, and corrects the strings it originally
had gotten from git-blame.  So the hovering message "fixes" itself
later on.

Maybe here too we should be defaulting to utf-8 instead of the
native encoding.

-- 
Shawn.