Subversion and Unicode Characters on the Mac

Published -  2014-09-09

Since years Subversion shows a, in my eyes critical, bug: it occours when handling filenames containing "Special" characters.

The problem description in short:

  • you are working on different platforms, Windows, Linux, Mac
  • you are using SVN
  • you have filenames with special characters, like 'á'

SVN on the Mac does not handle filenames with theses characters correctly. For details see Bug Report:

(When search on the web you will finda a lot more posts about this issue, all SVN versions, even 1.7 and 1.8 is affected).

Reason:

The Mac handles the encoding of these Unicode Characters different than Windows/Linux. The Mac uses the "decomposed" encoding, Windows and Linux uses "precomposed" encoding.

  • "precomposed" - means the character is stored as "á"
  • "decomposed" - means the character is stored as 2 values "a" and "´"

see https://developer.apple.com/library/mac/qa/qa1235/_index.html

Luckily there are patches existing on the web to fix the behaviour of SVN on the Mac, unfortunately the fix is not part of the offical Subversion distribution.

I use homebrew to use the updated SVN, but even homebrew does not include the patch by default - you must give a special option to get it:

$ brew reinstall subversion17 --unicode-path

Now SVN works like expected. The homebrew guys do not support this patch for Subversion 1.8, see this github issue.

Sideeffects of this fix:

  • Versions.app (1.3.0 build 1053) crashes when opening the working directory
  • Cornerstone.app (2.7.14 17.135) has its own SVN included without the patch so it shows wrong "diffs"
  • SublimeSVN works because it uses the binaries in /usr/local

PS: event the Xcode provided SVN does not include the unicode patch.