gitk branch name encoding utf-8 probrem
diff mbox series

Message ID TY2PR01MB2427631CC07116A662AF3D38CA5C0@TY2PR01MB2427.jpnprd01.prod.outlook.com
State New
Headers show
Series
  • gitk branch name encoding utf-8 probrem
Related show

Commit Message

加藤一博 Dec. 5, 2019, 3:02 p.m. UTC
fix branch name encoding error on gitk.

git checkout -b '漢字'
gitk show branch name broken like this '貍「蟄'
fix this problem.

Signed-off-by: Kazuhiro Kato <kato-k@ksysllc.co.jp>
---
 gitk | 4 ++++
 1 file changed, 4 insertions(+)

--

See this pull request
https://github.com/kkato233/gitk/pull/4

-----Original Message-----
From: Jonathan Nieder <jrnieder@gmail.com> 
Sent: Thursday, December 5, 2019 7:29 AM
To: 加藤一博 <kato-k@ksysllc.co.jp>
Cc: git@vger.kernel.org; Paul Mackerras <paulus@ozlabs.org>
Subject: Re: [PATCH] gitk branch name encoding utf-8 probrem

(cc-ing Paul, gitk expert)
Hi!

加藤一博 wrote:

> Here is a patch to gitk branch name utf-8 probrem.

Thanks for reporting it.  Can you provide a short summary here of
the problem that we can use for a self-contained description in the
commit log?  See
https://www.kernel.org/pub/software/scm/git/docs/SubmittingPatches.html#describe-changes
for more on this subject.

May we also have your sign-off?  See
https://www.kernel.org/pub/software/scm/git/docs/SubmittingPatches.html#sign-off
for what this means.

Thanks and hope that helps,
Jonathan

> See issue
> https://github.com/kkato233/gitk/issues/1
> and fix it 
> https://github.com/kkato233/gitk/pull/2
> 
> 
> ---
> 
> diff --git a/gitk b/gitk
> index abe4805..3f61a5b 100755
> --- a/gitk
> +++ b/gitk
> @@ -1780,11 +1780,15 @@ proc readrefs {} {
>      global otherrefids idotherrefs mainhead mainheadid
>      global selecthead selectheadid
>      global hideremotes
> +    global tclencoding
> 
>      foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
>         unset -nocomplain $v
>      }
>      set refd [open [list | git show-ref -d] r]
> +    if {$tclencoding != {}} {
> +       fconfigure $refd -encoding $tclencoding
> +    }
>      while {[gets $refd line] >= 0} {
>         if {[string index $line 40] ne " "} continue
>         set id [string range $line 0 39]

Comments

Junio C Hamano Dec. 5, 2019, 8:28 p.m. UTC | #1
加藤一博 <kato-k@ksysllc.co.jp> writes:

> fix branch name encoding error on gitk.
>
> git checkout -b '漢字'
> gitk show branch name broken like this '貍「蟄'
> fix this problem.

Paul (the gitk maintainer), the patch text itself does look
reasonable.

    After "git checkout -b '漢字'" to create a branch with UTF-8
    character in it, "gitk" shows the branch name incorrectly, as it
    forgets to turns the bytes read from the "git show-ref" command
    into Unicode characters.

is how I would phrase the log message.

Thanks.

>
> Signed-off-by: Kazuhiro Kato <kato-k@ksysllc.co.jp>
> ---
>  gitk | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/gitk b/gitk
> index abe4805..3f61a5b 100755
> --- a/gitk
> +++ b/gitk
> @@ -1780,11 +1780,15 @@ proc readrefs {} {
>      global otherrefids idotherrefs mainhead mainheadid
>      global selecthead selectheadid
>      global hideremotes
> +    global tclencoding
>  
>      foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
>  	unset -nocomplain $v
>      }
>      set refd [open [list | git show-ref -d] r]
> +    if {$tclencoding != {}} {
> +	fconfigure $refd -encoding $tclencoding
> +    }
>      while {[gets $refd line] >= 0} {
>  	if {[string index $line 40] ne " "} continue
>  	set id [string range $line 0 39]
> --
>
> See this pull request
> https://github.com/kkato233/gitk/pull/4
>
> -----Original Message-----
> From: Jonathan Nieder <jrnieder@gmail.com> 
> Sent: Thursday, December 5, 2019 7:29 AM
> To: 加藤一博 <kato-k@ksysllc.co.jp>
> Cc: git@vger.kernel.org; Paul Mackerras <paulus@ozlabs.org>
> Subject: Re: [PATCH] gitk branch name encoding utf-8 probrem
>
> (cc-ing Paul, gitk expert)
> Hi!
>
> 加藤一博 wrote:
>
>> Here is a patch to gitk branch name utf-8 probrem.
>
> Thanks for reporting it.  Can you provide a short summary here of
> the problem that we can use for a self-contained description in the
> commit log?  See
> https://www.kernel.org/pub/software/scm/git/docs/SubmittingPatches.html#describe-changes
> for more on this subject.
>
> May we also have your sign-off?  See
> https://www.kernel.org/pub/software/scm/git/docs/SubmittingPatches.html#sign-off
> for what this means.
>
> Thanks and hope that helps,
> Jonathan
>
>> See issue
>> https://github.com/kkato233/gitk/issues/1
>> and fix it 
>> https://github.com/kkato233/gitk/pull/2
>> 
>> 
>> ---
>> 
>> diff --git a/gitk b/gitk
>> index abe4805..3f61a5b 100755
>> --- a/gitk
>> +++ b/gitk
>> @@ -1780,11 +1780,15 @@ proc readrefs {} {
>>      global otherrefids idotherrefs mainhead mainheadid
>>      global selecthead selectheadid
>>      global hideremotes
>> +    global tclencoding
>> 
>>      foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
>>         unset -nocomplain $v
>>      }
>>      set refd [open [list | git show-ref -d] r]
>> +    if {$tclencoding != {}} {
>> +       fconfigure $refd -encoding $tclencoding
>> +    }
>>      while {[gets $refd line] >= 0} {
>>         if {[string index $line 40] ne " "} continue
>>         set id [string range $line 0 39]
Pratyush Yadav Dec. 5, 2019, 8:40 p.m. UTC | #2
On 05/12/19 12:28PM, Junio C Hamano wrote:
> 加藤一博 <kato-k@ksysllc.co.jp> writes:
> 
> > fix branch name encoding error on gitk.
> >
> > git checkout -b '漢字'
> > gitk show branch name broken like this '貍「蟄'
> > fix this problem.
> 
> Paul (the gitk maintainer), the patch text itself does look
> reasonable.
> 
>     After "git checkout -b '漢字'" to create a branch with UTF-8
>     character in it, "gitk" shows the branch name incorrectly, as it
>     forgets to turns the bytes read from the "git show-ref" command

Minor typo: s/turns/turn/

>     into Unicode characters.
> 
> is how I would phrase the log message.
> 
> Thanks.
Pratyush Yadav Dec. 5, 2019, 8:50 p.m. UTC | #3
Hi 加藤一博,

On 05/12/19 12:28PM, Junio C Hamano wrote:
> 加藤一博 <kato-k@ksysllc.co.jp> writes:
> 
> > fix branch name encoding error on gitk.
> >
> > git checkout -b '漢字'
> > gitk show branch name broken like this '貍「蟄'
> > fix this problem.
> 
> Paul (the gitk maintainer), the patch text itself does look
> reasonable.
> 
>     After "git checkout -b '漢字'" to create a branch with UTF-8
>     character in it, "gitk" shows the branch name incorrectly, as it
>     forgets to turns the bytes read from the "git show-ref" command
>     into Unicode characters.

This commit message would work for the git-gui patch as well (change 
"gitk" to "git-gui").
 
> is how I would phrase the log message.
> 
> Thanks.

Patch
diff mbox series

diff --git a/gitk b/gitk
index abe4805..3f61a5b 100755
--- a/gitk
+++ b/gitk
@@ -1780,11 +1780,15 @@  proc readrefs {} {
     global otherrefids idotherrefs mainhead mainheadid
     global selecthead selectheadid
     global hideremotes
+    global tclencoding
 
     foreach v {tagids idtags headids idheads otherrefids idotherrefs} {
 	unset -nocomplain $v
     }
     set refd [open [list | git show-ref -d] r]
+    if {$tclencoding != {}} {
+	fconfigure $refd -encoding $tclencoding
+    }
     while {[gets $refd line] >= 0} {
 	if {[string index $line 40] ne " "} continue
 	set id [string range $line 0 39]