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

Re: Symlinks with umlauts

From: Saulius Grazulis <grazulis_at_akl.lt>
Date: 2005-07-01 09:21:38 CEST

On Thursday 30 June 2005 22:19, Tobias Grimm wrote:
> This works for me! But not this:
>
> $ touch umlaut
> $ ln -s umlaut "äöüß"
> $ svn add "äöüß"
> A         äöüß
> $ svn ci -m"test"
> Hinzufügen     äöüß
> Übertrage Daten .svn: Übertragen fehlgeschlagen (Details folgen):
> svn: Can't read contents of link: Datei oder Verzeichnis nicht gefunden
>
> ("Datei oder Verzeichnis nicht gefunden" = "File or Directory not found")
>

What if you check out a fresh workink copy, and make sure that locale is
always the same in all operations?

I did some experiments, and it worked when I use WC always with the same
locale.

This worked for me with LC_CTYPE=lt_LT.UTF-8 (and ru_RU.UTF-8 or en_US.UTF-8
should be fine, I guess)

saulius@kolibris: wc/ > touch umlaut
saulius@kolibris: wc/ > ln -s umlaut "äöüß"
saulius@kolibris: wc/ > svn add "äöüß"
A äöüß
saulius@kolibris: wc/ > svn ci -m "Adding link that contains umlauts in its
own name"
Adding äöüß
Transmitting file data .
Committed revision 5.
saulius@kolibris: wc/ > sv up
At revision 5.
saulius@kolibris: wc/ > ll
total 0
-rw-r--r-- 1 saulius 0 Jul 1 09:37 umlaut
-rw-r--r-- 1 saulius 0 Jul 1 09:37 äöüß

> @Saulius:
>
> The encoding of the filename should be iso8859-1 and locales are not
> utf-8, but "de_DE@euro". I have no problems with umlauts in filename,
> only umlauts in symlink names cause this failure. There may be a problem
> in the code, that resolves the symlink.

When I change locale to de_DE@euro, and run any svn command in the WC that was
created using UTF-8 locale, svn hangs....

'strace' shows that it hangs on a call:
lstat64("./ÀöÌÃ
so, yes, there is a problem with UTF-8 links. Maybe even in libc?

However, if _first_ set locale to de_DE@euro, then a) check out a fresh
working copy b) run your commands, it works fine again.

It works also works if the repository was created with one locale, but client
runs under different locale. It is only important that if you check out your
WC with locale de_DE@euro, you stick to this locale throughout.

The other way round works as well -- I can create repository under utf-8 and
check it out under iso8859-1 (de_DE@euro encoding), provided I do not have
lithuanian characters in my filenames ;)

(It should work, since, as the Subversion Book says, in a repository
Subversion keeps everyting in UTF-8 encoding anyway -- very nice ;)

It seems that it is subversion _client_ that does not tolerate a change of
locale in the middle of the work. But this is a problem with locales, not
with subversion, I guess...

-- 
Saulius Gražulis
Visuomeninė organizacija "Atviras Kodas Lietuvai"
P.Vileišio g. 18
LT-10306 Vilnius
Lietuva (Lithuania)
tel/fax:      (+370-5)-210 40 05
mobilus:      (+370-684)-49802, (+370-614)-36366

  • application/pgp-signature attachment: stored
Received on Fri Jul 1 09:15:34 2005

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