On Wed, Feb 01, 2012 at 09:00:39AM +0100, Ignacio González (Eliop) wrote: > Clients: Windows-XP, Windows 7, svn 1.6.16 (Spanish) > Server: Linux (CentOS), svn 1.6.16 (Spanish) > > Repository created OK > Hundreds of revisions already checked-in OK > Hook "check-mime-type" (bash) added in server > A couple of revisions checked-in OK > New file added with non-ASCII characters -> Problem: > 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 > 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
195 186 in hex is 0xc38a $ echo 0xc3ba | xxd -r | ExplicateUTF8 The sequence 0xC3 0xBA 11000011 10111010 is a valid UTF-8 character encoding equivalent to UTF32 0x000000FA. (ExplicateUTF8 is part of the 'unitools' suit). Written out as UTF-8 in email, unicode code point 0xfa is the character 'ú'. > 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. And how exactly does it fail? What's the error message? Does it print the same error message as you get with the hook? Whenever you write a problem report and you describe parts of the problem by "X fails" without showing how X fails, recipients of your report can only make wild guesses. > Oh, my God. Don't panic. This is nothing that cannot be fixed. You'll just have to figure out where it goes wrong. You didn't specify what type of server you are running (svnserve or mod_dav_svn), so I'm going to guess that you're using mod_dav_svn, i.e. an Apache HTTPD server is serving your repositories. In that case, issue #2487 might be the problem: http://subversion.tigris.org/issues/show_bug.cgi?id=2487 Though this would not explain a failing checkout, only problems in the hook script. Does your hook script set any of the LANG, LC_CTYPE or LC_ALL environment variables to some value? (If possible, please just show us the entire hook script.) See the issue link for more information and some workarounds (patches, but also an additional apache module you could load). A fix has just recently been committed but it is for 1.8. We cannot backport it to 1.7 because it requires API changes. The character ú is a character which has a diacritic so another possible explanation is a problem with NFC/NFD normalisation. See http://subversion.tigris.org/issues/show_bug.cgi?id=2464 This usually happens when MacOS X clients are involved. But in theory any Windows or Linux client could cause the same problem depening on how tools used on the client machine normalise UTF-8. Can you check if either of these apply? If not, we'll need to dig further.