[svn.haxx.se] · SVN Dev · SVN Users · SVN Org · TSVN Dev · TSVN Users · Subclipse Dev · Subclipse Users · this month's index

Re: Handling of accented characters in file names - MacOS 10.4 / Subversion 1.3.2

From: Benjamin M. <mailinglist_at_perspectives.qc.ca>
Date: 2006-07-20 20:38:36 CEST

Paul Koning wrote, On 06/01/06 17:15:
>>>>>> "Dominique" == Dominique Marie <dominique.marie-76@laposte.net> writes:
>>>>>>
>
> Dominique> Hi, I have some problems with my repository and I haven't
> Dominique> found it in the bug tracker. I loaded a module I had under
> Dominique> cvs with "cvs2svn". Some file names were wrong (utf-8
> Dominique> interpreted as iso-1) so I corrected them directly in the
> Dominique> repository with "svn mv URL URL".
>
> Dominique> When I do a "svn co" with a "svn status" immediately after
> Dominique> I get unknown and missing files for those with accented
> Dominique> letters as below. Is that because of different UTF-8
> Dominique> encodings (é in repository vs. e´ on filesystem) ? How can
> Dominique> I fix it ?
>
[snip]

> Yes, that problem came up about a month ago. It doesn't sound like
> there is a workaround for it at the moment.
>
> paul
Hi,

Any progress on that one? I have the same problem under MacOS 10.4 /
Subversion 1.3.2. This bug prevents any operation on filename with
accented characters under MacOS X...

The only way I have found (under MacOS X) to add files with accented
characters and have it displayed correctly with "svn st" is with "svn
add . --force" All the other operations with command line (svn add, mv,
etc) create the "missing" problem on "svn st"... The repository created
under MacOS X behaves as expected under Linux... BUT as you can see far
below, depending on the way the file has been added under MacOS X... the
"é" of "Répertoire" doesn't seem to be the same character ... Before,
here my MacOS X testcase:

$ svnadmin create repos
$ svn co file:///tmp/repos/ wc
Checked out revision 0.
$ cd wc
$ svn mkdir Répertoire1
A Répertoire1
$ svn st --verbose
? Répertoire1
                0 0 ? .
! ? ? ? Répertoire1
$ mkdir Répertoire2
$ svn st --verbose
? Répertoire2
? Répertoire1
                0 0 ? .
! ? ? ? Répertoire1
$ svn add Répertoire2
A Répertoire2
$ svn st --verbose
? Répertoire2
? Répertoire1
                0 0 ? .
! ? ? ? Répertoire1
! ? ? ? Répertoire2
$ mkdir Répertoire3
$ svn st --verbose
? Répertoire2
? Répertoire3
? Répertoire1
                0 0 ? .
! ? ? ? Répertoire1
! ? ? ? Répertoire2
$ svn add . --force
A Répertoire3
$ svn st --verbose
? Répertoire2
? Répertoire1
                0 0 ? .
A 0 ? ? Répertoire3
! ? ? ? Répertoire1
! ? ? ? Répertoire2
$ svn mkdir Directory1
A Directory1
$ svn ci -m "Import1"
Adding Directory1
Adding Répertoire1
Adding Répertoire2
Adding Répertoire3

Committed revision 1.
$ svn st --verbose
? Répertoire2
? Répertoire1
                0 0 ? .
                1 1 benjamin Répertoire3
                1 1 benjamin Directory1
! ? ? ? Répertoire1
! ? ? ? Répertoire2
$ svn mv Directory1 Répertoire4
A Répertoire4
D Directory1
$ svn ci -m "Import2"
Deleting Directory1
Adding Répertoire4

Committed revision 2.
$ svn st --verbose
? Répertoire2
? Répertoire4
? Répertoire1
                0 0 ? .
                1 1 benjamin Répertoire3
! ? ? ? Répertoire1
! ? ? ? Répertoire2
! ? ? ? Répertoire4
$ svn mkdir Répertoire5
A Répertoire5
$ svn ci -m "Import3"
Adding Répertoire5

Committed revision 3.
$ svn mv Répertoire5 Directory2
A Directory2
D Répertoire5
$ svn st --verbose
? Répertoire2
? Répertoire4
? Répertoire5
? Répertoire1
                0 0 ? .
                1 1 benjamin Répertoire3
A + - 3 benjamin Directory2
! ? ? ? Répertoire1
! ? ? ? Répertoire2
! ? ? ? Répertoire4
D ? ? ? Répertoire5
$ svn ci -m "Import3"
Adding Directory2
Deleting Répertoire5

Committed revision 4.
$ svn st --verbose
? Répertoire2
? Répertoire4
? Répertoire1
                0 0 ? .
                1 1 benjamin Répertoire3
                4 4 benjamin Directory2
! ? ? ? Répertoire1
! ? ? ? Répertoire2
! ? ? ? Répertoire4

Here the "svn st --verbose" output (Terminal Characters Set Encoding:
UTF-8) after moving the repository from my Mac to my Linuxbox

$ svn st --verbose
                2 2 benjamin .
                2 1 benjamin Répertoire3
                2 1 benjamin Répertoire1
                2 1 benjamin Répertoire2
                2 2 benjamin Répertoire4

But with Terminal Characters Set Encoding: Latin-1 (any better way to
know the exact character?)

$ svn st --verbose
                2 2 benjamin .
                2 1 benjamin ReÌpertoire3 <-- svn add .
--force
                2 1 benjamin Répertoire1 <-- filename via
cmd line...
                2 1 benjamin Répertoire2
                2 2 benjamin Répertoire4

Here the ouput with Terminal Characters Set Encoding: Latin-1 under MacOS X:

$ svn st --verbose
? ReÌpertoire2
? ReÌpertoire4
? ReÌpertoire1
                0 0 ? .
                1 1 benjamin ReÌpertoire3
                4 4 benjamin Directory2
! ? ? ? Répertoire1
! ? ? ? Répertoire2
! ? ? ? Répertoire4

Now if I add Répertoire5 under Linux... (To see which is the expected "é")

$ svn mkdir Répertoire5
A Répertoire5

Terminal Characters Set Encoding: Latin-1
$ svn st --verbose
                2 2 benjamin .
                2 1 benjamin ReÌpertoire3
                2 1 benjamin Répertoire1
                2 1 benjamin Répertoire2
                3 3 benjamin Répertoire5
                2 2 benjamin Répertoire4

So... Linux client doesn't seem to bother between Répertoire or
ReÌpertoire on "svn st"... but MacOS client does... Also the right "é"
seems to be the one in Répertoire... not the one in ReÌpertoire...

Hope that can help to solve the problem...

--
Ben
-------------------
$ locale
-------------------
Under MacOS X:
$ locale
LANG="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_CTYPE="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_ALL="en_CA.UTF-8"
Under Linux:
$ locale
LANG=en_US.UTF-8
LC_CTYPE="en_CA.UTF-8"
LC_NUMERIC="en_CA.UTF-8"
LC_TIME="en_CA.UTF-8"
LC_COLLATE="en_CA.UTF-8"
LC_MONETARY="en_CA.UTF-8"
LC_MESSAGES="en_CA.UTF-8"
LC_PAPER="en_CA.UTF-8"
LC_NAME="en_CA.UTF-8"
LC_ADDRESS="en_CA.UTF-8"
LC_TELEPHONE="en_CA.UTF-8"
LC_MEASUREMENT="en_CA.UTF-8"
LC_IDENTIFICATION="en_CA.UTF-8"
LC_ALL=en_CA.UTF-8
Received on Thu Jul 20 20:40:25 2006

This is an archived mail posted to the Subversion Users mailing list.

This site is subject to the Apache Privacy Policy and the Apache Public Forum Archive Policy.