Mac OS X 上的 SVN 文件名编码问题

Alb*_*ert 8 svn utf-8 macos

我有一些文件名,其中包含一些 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) %
Run Code Online (Sandbox Code Playgroud)

如您所见,svn del无法识别文件名。甚至svn status对此感到困惑。

我怎样才能解决这个问题?我也试过LC_CTYPE=$LANG LC_ALL=$LANG LC=$LANG但没有改变。

Alb*_*ert 8

我从 B Smith-Mannschott 的 Subversion 邮件列表中得到了答案:

这是一个已知的问题。

http://subversion.tigris.org/issues/show_bug.cgi?id=2464

该问题的评论线程上的一张海报建议如下:

Julian Mehnle Thu Aug 6 07:40:30 -0700 2009 的其他评论:

这里一个解决方法:安装颠覆的MacPorts包的“unicode_path”变种:

$ sudo 端口安装颠覆+unicode_path

我自己没试过这个。

// 本

它似乎主要对我有用,但我不确定现在还有什么坏了。

我对 Subversion 源进行了一些调查,似乎对 UTF8 文件名的支持非常严重。他们有点忽略文件名在 UTF8 中可以有不同表示的事实。它们处理所有这些不同的表示,如不同的文件名。MacOSX 可能会在内部更改表示形式,而这正是 Subversion 经常混淆的地方——并且无法处理。

你可以在他们的源代码中看到他们的路径比较函数基本上只是一个 memcpy。

我试图修复它,但我不确定我是否做了(而且我不想在它上面浪费更多的时间——它现在似乎可以工作,但不确定)。

阅读上游错误报告以获取更多详细信息和后续讨论。