Hi,
I get funny error messages when using svnserve tunnel mode with LANG=C
(or LC_ALL=C).
With LANG=C, error message characters should be ASCII.
In fact, however, they seem to be always localized UTF-8 characters,
and when displayed under LANG=C they turn to unreadable '?\nnn'-s, that
shows they are recoded twice from UTF-8 to local encoding.
This strange behaviour occurs in both /branches/1.1.x and current /trunk.
A test shell script and its outputs are in the lower part of this mail.
In that output, the error message "File not found: revision %ld, path '%s'"
(in subversion/libsvn_fs_*/tree.c) is:
* properly localized with LANG=ja_JP.eucJP + ra_local.
* output in ASCII with LANG=C + ra_local.
* properly localized with LANG=ja_JP.eucJP + ra_svn (tunnel mode).
* output in unreadable chars ('?\nnn'-s) with LANG=C + ra_svn (tunnel mode).
[test shell script]
#!/bin/sh
repos_path=$HOME/tests/svnssh/repos
repos_uri_file=file://$repos_path
repos_uri_svnssh=svn+ssh://127.0.0.1$repos_path
wc_path_file=$HOME/tests/svnssh/wc_file
wc_path_svnssh=$HOME/tests/svnssh/wc_svnssh
obj1=$wc_path_file/obj1
obj2=$wc_path_svnssh/obj2
obj3=$wc_path_file/obj3
obj4=$wc_path_svnssh/obj4
svnadmin=./subversion/svnadmin/svnadmin
svn=./subversion/clients/cmdline/svn
$svnadmin create $repos_path
$svn co $repos_uri_file $wc_path_file
$svn co $repos_uri_svnssh $wc_path_svnssh
touch $obj1 $obj2
$svn add $obj1
$svn add $obj2
$svn ci -m "Add obj1." $obj1 # r1
$svn ci -m "Add obj2." $obj2 # r2
$svn move $obj1 $obj3
$svn move $obj2 $obj4
$svn ci -m "Rename obj1 to obj3." $obj3 # r3
$svn ci -m "Rename obj2 to obj4." $obj4 # r4
$svn log $obj3
$svn log $obj4
$svn log -r1 $obj3 # OK.
LANG=C $svn log -r1 $obj3 # OK.
$svn log -r2 $obj4 # OK.
LANG=C $svn log -r2 $obj4 # '?\nnn'-s!!
rm -rf $repos_path $wc_path_file $wc_path_svnssh
[outputs from above test script run under LANG=ja_JP.eucJP]
nori1[3:13]% ./svnsshtest.sh saba:~/svnwc/subversion-head
$B%j%S%8%g%s(B 0 $B$r%A%'%C%/%"%&%H$7$^$7$?!#(B
nori1@127.0.0.1's password:
nori1@127.0.0.1's password:
nori1@127.0.0.1's password:
$B%j%S%8%g%s(B 0 $B$r%A%'%C%/%"%&%H$7$^$7$?!#(B
(snip...)
------------------------------------------------------------------------
r3 | nori1 | 2005-03-29 03:14:31 +0900 ($B2P(B, 29 3$B7n(B 2005) | 1 line
Rename obj1 to obj3.
------------------------------------------------------------------------
r1 | nori1 | 2005-03-29 03:14:14 +0900 ($B2P(B, 29 3$B7n(B 2005) | 1 line
Add obj1.
------------------------------------------------------------------------
nori1@127.0.0.1's password:
------------------------------------------------------------------------
r4 | nori1 | 2005-03-29 03:14:37 +0900 ($B2P(B, 29 3$B7n(B 2005) | 1 line
Rename obj2 to obj4.
------------------------------------------------------------------------
r2 | nori1 | 2005-03-29 03:14:28 +0900 ($B2P(B, 29 3$B7n(B 2005) | 1 line
Add obj2.
------------------------------------------------------------------------
svn: $B%U%!%$%k$,8+$D$+$j$^$;$s(B: $B%j%S%8%g%s(B 1, $B%Q%9(B '/obj3'
svn: File not found: revision 1, path '/obj3'
nori1@127.0.0.1's password:
svn: $B%U%!%$%k$,8+$D$+$j$^$;$s(B: $B%j%S%8%g%s(B 2, $B%Q%9(B '/obj4'
nori1@127.0.0.1's password:
svn: ?\227?\131?\149?\227?\130?\161?\227?\130?\164?\227?\131?\171?\227?\129?\140?\232?\166?\139?\227?\129?\164?\227?\129?\139?\227?\130?\138?\227?\129?\190?\227?\129?\155?\227?\130?\147: ?\227?\131?\170?\227?\131?\147?\227?\130?\184?\227?\131?\167?\227?\131?\179 2, ?\227?\131?\145?\227?\130?\185 '/obj4'
Thanks,
--
|: Noritada KOBAYASHI
|: Dept. of General Systems Studies,
|: Graduate School of Arts and Sciences, Univ. of Tokyo
|: E-mail: nori1@dolphin.c.u-tokyo.ac.jp (preferable)
|: nori@esa.c.u-tokyo.ac.jp
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@subversion.tigris.org
For additional commands, e-mail: dev-help@subversion.tigris.org
Received on Tue Mar 29 11:00:50 2005