threads / bug / 7793

[BUG] git gui and my ö

Subject: [BUG] git gui and my ö

## tl;dr

4 messages between Apr 23, 2007 and Apr 24, 2007.

replies: 3people: 2as markdown or json

Uwe Kleine-König· Apr 23, 2007, 11:32 UTC · lore
Hello,

when I try to amend a commit with git gui that is properly signed-off by me and hit "Commit", I get

	commit-tree failed:
	<sha1 sum>
	Warning: commit message does not conform to UTF-8.
	You may ...
The commit was done with git-commit, I have 
	zeisberg@cassiopeia:~$ set | grep -E '^L(ANG|C_)'
	LANG=en_US.UTF-8
	LC_CTYPE=en_US.UTF-8

and the ö is properly displayed in the commit message text box before hitting Commit. When I remove the ö, I can commit (and re-amend on the cmdline).

I'm using:
	zeisberg@cassiopeia:~/gsrc/linux-2.6$ git version
	git version 1.5.1.1.190.g74474
	zeisberg@cassiopeia:~/gsrc/linux-2.6$ git gui version
	git-gui version 0.6.5.10.g845d3

I don't know tcl/tk very well, so for now you only get a report and no patch :-(

Best regards Uwe

-- 
Uwe Kleine-König

http://www.google.com/search?q=5%2B7
Shawn O. Pearce· Apr 24, 2007, 05:39 UTC · re: Uwe Kleine-König · lore

Re: [BUG] git gui and my ö

Uwe Kleine-K??nig <ukleinek@informatik.uni-freiburg.de> wrote:
Show 11 quoted lines
> 	commit-tree failed:
> 
> 	<sha1 sum>
> 	Warning: commit message does not conform to UTF-8.
> 	You may ...
> 
> The commit was done with git-commit, I have 
> 
> 	zeisberg@cassiopeia:~$ set | grep -E '^L(ANG|C_)'
> 	LANG=en_US.UTF-8
> 	LC_CTYPE=en_US.UTF-8

What does your git-config think is the value of i18n.commitencoding? If its unset git-gui assumes utf-8 as the encoding. Hmm...

This particular code is around line 1287 of git-gui:
   1287     # -- Build the message.
   1288     #
   1289     set msg_p [gitdir COMMIT_EDITMSG]
   1290     set msg_wt [open $msg_p w]
   1291     if {[catch {set enc $repo_config(i18n.commitencoding)}]} {
   1292         set enc utf-8
   1293     }
   1294     fconfigure $msg_wt -encoding $enc -translation binary
   1295     puts -nonewline $msg_wt $msg
   1296     close $msg_wt

We should be writing the commit message (here $msg) out to a temporary file ($msg_p / $msg_t), using a UTF-8 encoding ($enc). Apparently that's not what's happening here. I wonder if the Tk text widget is feeding me UTF-8, and the way I have configured the file channel Tcl is than mangling things futher... *sigh*

Anyone reading this a better Tcl guru than I?

I'll try to take a look at this tomorrow. I'll have to figure out how to get your proper name into git-gui first. :-)

I had thought I had most of git-gui i8n safe, but apparently not. Thanks for the bug report!

-- 
Shawn.
Shawn O. Pearce· Apr 24, 2007, 06:16 UTC · re: Shawn O. Pearce · lore

Re: [BUG] git gui and my ö

"Shawn O. Pearce" <spearce@spearce.org> wrote:
> Uwe Kleine-K??nig <ukleinek@informatik.uni-freiburg.de> wrote:
> > 	commit-tree failed:
> > 	Warning: commit message does not conform to UTF-8.

This was starting to bug me, so I went off and found it. OK, well the encoding error anyway. git-gui incorrectly claimed commit-tree failed when it didn't. But besides the point, this is the bad line:

>    1294     fconfigure $msg_wt -encoding $enc -translation binary

I have had trouble in the past with trying to use that magic -encoding flag on fconfigure to get Tcl's file channels to perform encoding work for me. Seems it doesn't work right or something... so other parts of git-gui (e.g. the filename handling parts) perform the convertfrom/convertto logic on their own... but the commit message handling parts didn't.

They do now (git gui 0.6.5-11-gf20db5f).

Can you please test my current master branch and see if that fixes things for you? repo.or.cz, git-gui.git...

If it does, I'm probably going to tag that as 0.6.6 and let Junio cut 1.5.2 with that release.

-- 
Shawn.
Uwe Kleine-König· Apr 24, 2007, 08:57 UTC · re: Shawn O. Pearce · lore

Re: [BUG] git gui and my ö

Hello Shawn,
Shawn O. Pearce wrote:
Show 22 quoted lines
> "Shawn O. Pearce" <spearce@spearce.org> wrote:
> > Uwe Kleine-K??nig <ukleinek@informatik.uni-freiburg.de> wrote:
> > > 	commit-tree failed:
> > > 	Warning: commit message does not conform to UTF-8.
> 
> This was starting to bug me, so I went off and found it.  OK, well
> the encoding error anyway.  git-gui incorrectly claimed commit-tree
> failed when it didn't.  But besides the point, this is the bad line:
> 
> >    1294     fconfigure $msg_wt -encoding $enc -translation binary
> 
> I have had trouble in the past with trying to use that magic
> -encoding flag on fconfigure to get Tcl's file channels to perform
> encoding work for me.  Seems it doesn't work right or something...
> so other parts of git-gui (e.g. the filename handling parts)
> perform the convertfrom/convertto logic on their own... but the
> commit message handling parts didn't.
> 
> They do now (git gui 0.6.5-11-gf20db5f).
> 
> Can you please test my current master branch and see if that fixes
> things for you?  repo.or.cz, git-gui.git...

Works fine. I pulled in your changes[1] and it worked with one test case. (I amended the merge and added a sign-off. ;-)

Best regards and thanks Uwe

[1] Thanks to gitster in #git to explain how to do it.  It's as easy as:
	git pull -s subtree git://.../git-gui.git master
-- 
Uwe Kleine-König

http://www.google.com/search?q=gravity+on+earth%3D

← back to recent threads