У меня есть некоторое имя файла с некоторым символом Unicode в нем. Все имена файлов на Mac OS X являются закодированным UTF8. Также $LANG
установлен на en_US.UTF-8
.
Однако это кажется svn
имеет некоторые проблемы с этим:
az@ip212 1054 (Integration) %ls
Abbildungen Verbesserungsvorschläge_Applets.odt
AllgemeineAnmerkungen.rtf Verbesserungsvorschläge_Applets.rtf
Geogebra Vorlagen
Texte
az@ip212 1055 (Integration) %svn ls
Abbildungen/
AllgemeineAnmerkungen.rtf
Geogebra/
Texte/
Verbesserungsvorschläge_Applets.rtf
Verbesserungsvorschläge_Applets.odt
Vorlagen/
az@ip212 1056 (Integration) %svn del Verb*.odt
svn: Use --force to override this restriction
svn: 'Verbesserungsvorschläge_Applets.odt' is not under version control
az@ip212 1057 (Integration) %svn status
? Verbesserungsvorschläge_Applets.odt
! Verbesserungsvorschläge_Applets.odt
az@ip212 1058 (Integration) %
Как видете, svn del
не распознает имя файла. И даже svn status
запутывается об этом.
Как я могу зафиксировать это? Я также попробовал LC_CTYPE=$LANG LC_ALL=$LANG LC=$LANG
но никакое изменение.
Я получил ответ от Подверсии mailinglist от Smith-Mannschott B:
Это - известная проблема.
http://subversion.tigris.org/issues/show_bug.cgi?id=2464
Один плакат на комментарии распараллеливает к той проблеме, предложенной следующим образом:
Дополнительные комментарии от Julian Mehnle четверг 6 августа 7:40:30 - 0700 2009:
Существует обходное решение: установите "unicode_path" вариант подверсии пакет MacPorts:
$ sudo подверсия установки порта +unicode_path
Я не попробовал это сам.
//ben
Это, кажется, работает главным образом на меня, но я не уверен, что еще повреждается теперь.
Я сделал некоторое расследование источника Подверсии, и кажется, что поддержка имени файла UTF8 повреждается очень плохо. Они отчасти игнорируют то, что имя файла может иметь различные представления в UTF8. Они обрабатывают все такие различные представления как различные имена файлов. MacOSX мог бы изменить представление внутренне, и это - то, какая Подверсия путает много - и не может обработать.
Вы видите в их источнике, что их путь выдерживает сравнение, функция является в основном просто memcpy.
Я пытался зафиксировать его, но я не действительно уверен, сделал ли я или не (и я не хочу тратить впустую намного больше времени в него - это, кажется, работает теперь, но не уверенное в этом).
Прочитайте восходящий отчет об ошибках для получения дополнительной информации и последующего обсуждения.