Существует небольшая проблема с отображением в том, что многие шрифты, используемые в Windows, не будут отображать разложенную форму идеальным способом, используя объединенный глиф для буквы и диакритического знака.Вместо этого он возвращается к отрисовке буквы, а затем к наложению автономной диакритической метки сверху, что обычно приводит к менее визуально привлекательной, потенциально односторонней графеме.
Однако это не проблема ошибки Subversion, на которую ссылается викиговорит о.На самом деле вполне нормально проверять имена файлов в SVN, которые содержат составные или разложенные последовательности символов;SVN не знает и не заботится о композиции, он просто использует кодовые точки Unicode как есть.Пока файловая система бэкэнда оставляет имена файлов в том же состоянии, в котором они были вставлены, все в порядке.
В Windows и Linux обе файловые системы одинаково слепы по составу.Mac OS X, к сожалению, нет.Как файловые системы HFS +, так и UFS выполняют «нормализацию» для декомпозированной формы перед сохранением входящего имени файла, поэтому возвращаемое имя файла не обязательно будет той же последовательностью кодированных точек Unicode, которые вы вводите.
Именно это [IMO: безумное] поведение, которое смущает SVN - и многие другие программы - при работе на OS X. Это особенно вероятно, чтобы откусить, потому что Apple случайно выбрала декомпозированный (NFD) в качестве формы нормализации, в то время как большая часть остального мира использует(NFC) символов.
(И это даже не настоящий NFD, а несовместимый вариант только для Apple. Радость.)
Лучший способ справиться с этим, если вы можете, этоникогда не полагаться на точное имя файла, под которым что-то хранится.Если вы когда-либо читаете файл только с заданным именем, это нормально, так как он будет нормализован для соответствия файловой системе в то время.Но если вы читаете список каталогов и пытаетесь сопоставить имена файлов, которые вы там найдете, с тем, что, как вы ожидали, будет именем файла - что и делает Subversion - вы получите несоответствия.
имя файла точно совпадает, вам нужно будет определить, что вы работаете в OS X, и вручную нормализовать как имя файла, так и строку, до некоторой нормальной формы (NFC или NFD) перед выполнением сравнения.Вы не должны делать это в других ОС, которые обрабатывают две формы как разные.