You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@subversion.apache.org by Gunter Ohrner <G....@post.rwth-aachen.de> on 2006/01/02 09:23:44 UTC

Re: "Can't recode string" again...

Gunter Ohrner wrote:
> Problem: checkin was successful. Subsequent commits in a directory with
> umlauts now cause the error message "svn: Can't recode string".

Doesn't anyone have an idea what I may be doing wrong?

Also pointers to FAQs / relevant svnbook sections are greatly appreciated, I
couldn't find anything helpful for my case. :-(

What charset does svnserve try to recode the UTF-8 to?

Greetings,

  Gunter

-- 
Python is executable pseudocode. Perl is executable line noise.        
-- http://mail.python.org/pipermail/tutor/2002-April/014142.html
*** PGP-Verschlüsselung bei eMails erwünscht :-) *** PGP: 0x1128F25F ***


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: "Can't recode string" again...

Posted by Joerg Hessdoerfer <Jo...@sea-gmbh.com>.
Hi again,

On Monday 02 January 2006 10:57, Joerg Hessdoerfer wrote:
> Hi,
>
[...]
>
> Well, SVN tries to recode to your current locale. Guessing that the locale
[...]

I wasn't clear on that, I guess: SVN recodes only the filenames, not the 
contents. So please also check that the directory name in question looks 
correct.

Greetings,
	Jörg
-- 
Leading SW developer  - S.E.A GmbH
Mail: joerg.hessdoerfer@sea-gmbh.com
WWW:  http://www.sea-gmbh.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: "Can't recode string" again...

Posted by Gunter Ohrner <G....@post.rwth-aachen.de>.
Joerg Hessdoerfer wrote:
>> > Problem: checkin was successful. Subsequent commits in a directory with
>> > umlauts now cause the error message "svn: Can't recode string".
>> Doesn't anyone have an idea what I may be doing wrong?

> Well, SVN tries to recode to your current locale. Guessing that the locale
> was correct on commit, and guessing your location in germany, and guessing
> you're on *NIX, you probably should set your locale to 'german' (or
> de_DE). See 'locale -a' for which locales you have installed.

Mh, maybe I'm misunderstanding how subversion is supposed to handle
different charsets. From what I read about svn my impression was that the
client normalizes all filenames to UTF8 - depending on the current locale -
and transmits the normalized file names to the server. From the strace I
did it also looks to me as if my local svn client did just that, before
URL-encoding the name.

Now I'm wondering why the subversion server wants to do any recoding at all?
I thought it'd just store the UTF8 names provided from the client and it'd
be the client's responsibility to recode these UTF8 names to the current
locale upon checkout / update.

What of this did I get wrong?


On the client LC_* is unset, LANG is set to "de_DE@euro" and the
filenames/dirnames in question are readable just fine in the console.

On the client, "locale -a" prints

$ locale -a
C
de_DE@euro
de_DE.iso885915@euro
de_DE.utf8
POSIX

while on the server it does print

# locale -a
C
POSIX
de_DE
de_DE.iso88591
de_DE.iso885915@euro
de_DE.utf8
de_DE.utf8@euro
de_DE@euro
deutsch
en_GB.utf8
en_US.utf8
german

(So "de_DE@euro" is known to both the client and the server, if neccessary.)

Greetings,

  Gunter

-- 
"When all else fails, read the instructions." -- Cahn's Axiom
*** PGP-Verschlüsselung bei eMails erwünscht :-) *** PGP: 0x1128F25F ***


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: "Can't recode string" again...

Posted by Joerg Hessdoerfer <Jo...@sea-gmbh.com>.
Hi,

On Monday 02 January 2006 10:23, Gunter Ohrner wrote:
> Gunter Ohrner wrote:
> > Problem: checkin was successful. Subsequent commits in a directory with
> > umlauts now cause the error message "svn: Can't recode string".
>
> Doesn't anyone have an idea what I may be doing wrong?
>
> Also pointers to FAQs / relevant svnbook sections are greatly appreciated,
> I couldn't find anything helpful for my case. :-(
>
> What charset does svnserve try to recode the UTF-8 to?
>
> Greetings,
>
>   Gunter

Well, SVN tries to recode to your current locale. Guessing that the locale was 
correct on commit, and guessing your location in germany, and guessing you're 
on *NIX, you probably should set your locale to 'german' (or de_DE). See 
'locale -a' for which locales you have installed.

If those guesses are wrong, please post again with more info.

Hope this helps,
	Jörg
-- 
Leading SW developer  - S.E.A GmbH
Mail: joerg.hessdoerfer@sea-gmbh.com
WWW:  http://www.sea-gmbh.com

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: "Can't recode string" again...

Posted by Gunter Ohrner <G....@post.rwth-aachen.de>.
Joachim Durchholz wrote:
> Prefixing the svn export command with
>    export LC_CTYPE=en_US.UTF-8
> did the trick for me.

LC_* is unset, LANG is set to the current locale. I also tried unstting LANG
and exporting LC_CTYPE as de_DE@euro, with the same results.

I'm not using an UTF8 encoding on the client side, so "something.UTF-8"
would probably lead to corrupt results.

>> What charset does svnserve try to recode the UTF-8 to?
> I'd guess it's the character set that the client uses for file names.

Mh, so the client converts the filename to UTF-8 before committing /
updateing, and the server converts it back to the client's character
encoding? Why doesn't the server store the filename in an encoding-neutral
UTF-8 and leave all re-encoding work to the different clients, which could
likely have different locale setting with different encodings?

Greetings,

  Gunter

-- 
"Nach uns der Syn-Flood!"
        -- Autor unbekannt
*** PGP-Verschlüsselung bei eMails erwünscht :-) *** PGP: 0x1128F25F ***


---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org

Re: "Can't recode string" again...

Posted by Joachim Durchholz <jo...@durchholz.org>.
Gunter Ohrner schrieb:
> Gunter Ohrner wrote:
> 
>>Problem: checkin was successful. Subsequent commits in a directory with
>>umlauts now cause the error message "svn: Can't recode string".
> 
> Doesn't anyone have an idea what I may be doing wrong?

Just saw your message for the first time.

> Also pointers to FAQs / relevant svnbook sections are greatly appreciated, I
> couldn't find anything helpful for my case. :-(

I got the same problem with this setup:
* Working on a Windows workstation
* Committing a file that contained an umlaut in its name
* Trying to svn export that file *to a Linux directory*.

Prefixing the svn export command with
   export LC_CTYPE=en_US.UTF-8
did the trick for me.

Note that this made svn recode the file names to UTF-8, which may or may 
not be what you want. (It didn't work too well for me because I'm 
running ssh with ISO 8859-1. And I'm not sure how Apache would handle 
such a file name - it probably depends on what its environment told it 
about the locale. OTOH I didn't care about anything, since file names 
with umlauts aren't supposed to be visible at shell or HTTP level 
anyway; files with umlauts in their names aren't supposed to have 
meaning outside the repository on the server. Your setup may be different.)

On the Unix side, you can try
   locale -a
to get a list of all installed locales. Doing
   echo $LC_CTYPE
should tell you what the default locale is.

I'd try using a wider locale (with more characters suppored), i.e. one 
that is *.utf8, *.iso8859*, or *@euro, then reconfigure whatever needs 
to be reconfigured for that character sets. (I'd go for switching the 
entire system, but if you already have things with umlauts in your file 
system, a changed encoding will change their names. OTOH if the current 
encoding already could handle umlauts, you'd probably not get those 
recode errors from SVN.)

> What charset does svnserve try to recode the UTF-8 to?

I'd guess it's the character set that the client uses for file names.

Regards,
Jo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@subversion.tigris.org
For additional commands, e-mail: users-help@subversion.tigris.org