【发布时间】:2011-01-08 04:07:50
【问题描述】:
我有一个提交后挂钩脚本,当提交到存储库时,它会执行工作副本的 SVN 更新。
当用户使用 TortoiseSVN 从他们的 Windows 机器提交到存储库时,他们会收到以下错误:
post-commit hook failed (exit code 1) with output:
svn: Error converting entry in directory '/home/websites/devel/website/guides/Images' to UTF-8
svn: Can't convert string from native encoding to 'UTF-8':
svn: Teneriffa-S?\195?\188d.jpg
上面有问题的文件是:Teneriffa-Süd.jpg 注意重音 u。这是因为该网站是德语,并且文件是用德语拼写的。
在 Linux 命令行上对工作副本执行更新时,不会遇到任何错误。上述错误仅在 Windows SVN 客户端通过提交执行 post-commit 挂钩时存在。
问题:
- 为什么 SVN 会尝试更改文件的编码?
- 是否允许文件名包含 Windows 标准 ASCII 字符之外的字符?
更新:
事实证明,从 Windows 机器(通过 Samba)查看时,相关文件的文件名正确显示为 Teneriffa-Süd.jpg,但是当我从文件所在的 Linux 服务器(使用 SSH 和 PuTTY)查看文件名时,我得到了Teneriffa-Süd.jpg
【问题讨论】:
-
快速说明:Samba + Windows 和 SSH +PuTTY 之间的文件名差异可能是 PuTTY 配置的结果,而不是与您的问题有关。在 PuTTY 的窗口 Translation 下,“远程字符集”选项可能需要更改为 UTF-8。
-
对我来说,问题在于我的提交消息中的非 ASCII 字符。
标签: linux svn version-control