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

Re: check-mime-type, Windows client, non-ASCII path

From: Ulrich Eckhardt <ulrich.eckhardt_at_dominolaser.com>
Date: Wed, 01 Feb 2012 13:47:13 +0100

Am 01.02.2012 09:00, schrieb Ignacio González (Eliop):
> Clients: Windows-XP, Windows 7, svn 1.6.16 (Spanish)

Just to make sure, are you using a native MS Windows client or are you
using Cygwin? Also, the clients differ slightly depending on the
distribution, it would be helpful to have those, too.

> Path name (in Windows, client): C:\Usuarios\arenero\Inútil.TXT
> (note the u with an acute accent: ú)
>
> C:\Usuarios\arenero>svn ci acentos -m "Prueba 1"
> Adding acentos
> Adding acentos\In£til.TXT

Hmmm. Here something already failed, the accented u changed to a pound
sign. Or is that just a transmission error, caused by email?

> Transmitting file data .svn: Commit failed (details follow):
> svn: Commit blocked by pre-commit hook (exit code 1) with output:
> /opt/csvn/data/repositories/telecontrol/hooks/check-mime-type:
> `/opt/csvn/bin/sv
> nlook proplist /opt/csvn/data/repositories/arenero -t 44-1e --verbose
> acentos/In
> ?\195?\186til.TXT' failed with this output:
> svnlook: Path 'acentos/In?\195?\186til.TXT' does not exist

Just for the record, I guess the ?\195?\186 could be a representation
derived from the byte values of UTF-8, but I haven't verified that. What
I'm not 100% sure is whether that is a fault in the hook script and how
it handles those arguments. It would be interesting to know if this
works with the hook script active.

> To help diagnose it, I tried to check out an already existing file with
> accents in its name (checked in before the Hook "check-mime-type" (bash)
> was added in the server).
> Check out fails.

That shouldn't happen, no matter what the hook scripts say. What exactly
is the error? What is the name of the file?

The only reason I could imagine is when you somehow got a path into the
repository that is invalid UTF-8. While checking out that path, the
client would then try to transcode the UTF-8 to MS Windows' native
UTF-16 and fail. I believe some older SVNs relied on the client sending
well-formed UTF-8, instead of validating it server-side. With the client
being less than perfect, this could then lead to invalid paths. How old
is your repository? Can you back it up and run svnadmin verify on it?

That said, I have been using lots of different characters (extended
Latin, Greek, Chinese, Japanese, Indian) inside a Linux-hosted repo,
accessed via svnserve by clients on MS Windows XP and 7 without any
issues. The warning by Nico IMHO only applies if you want to share
working copies between different systems, which is discouraged anyway,
but those problems are actually not specific to SVN.

Uli
**************************************************************************************
Domino Laser GmbH, Fangdieckstraße 75a, 22547 Hamburg, Deutschland
Geschäftsführer: Thorsten Föcking, Amtsgericht Hamburg HR B62 932
**************************************************************************************
Visit our website at http://www.dominolaser.com
**************************************************************************************
Diese E-Mail einschließlich sämtlicher Anhänge ist nur für den Adressaten bestimmt und kann vertrauliche Informationen enthalten. Bitte benachrichtigen Sie den Absender umgehend, falls Sie nicht der beabsichtigte Empfänger sein sollten. Die E-Mail ist in diesem Fall zu löschen und darf weder gelesen, weitergeleitet, veröffentlicht oder anderweitig benutzt werden.
E-Mails können durch Dritte gelesen werden und Viren sowie nichtautorisierte Änderungen enthalten. Domino Laser GmbH ist für diese Folgen nicht verantwortlich.
**************************************************************************************
Received on 2012-02-01 14:16:20 CET

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.