Mercurial:Windows和Linux之间的文件名中的非ascii字母问题

时间:2011-08-31 12:07:58

标签: windows linux mercurial samba

我在samba服务器上有一个中央Hg存储库,还有两个工作副本,一个在Ubuntu上,一个在Windows 7上。一切正常,直到我错误地将一个带有俄文字母的文件添加到项目中。我在Linux上做过。 Mercurial乐意接受它,在Linux中,一切仍然有效。但是我发现我不能再将更改集拉到Windows了。对于hg pull,我得到了

pulling from ...
searching for changes
adding changesets
transaction abort!
rollback completed
abort: empty or missing revlog for figures/interfDðÁsign.svg

(problematc文件名应该是interfDеsign,其中包含Cyrillic'е'。)我已经在Linux中重命名了该文件,已提交并推送了更改,如果我hg in,我甚至可以看到此更改视窗。但我不能拉它!有没有办法纠正这个问题,并使存储库再次与Windows一起使用?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:0)

我找到了另一种解决方案,或者说是一种解决方法。使用Convert extension,可以重命名命名不佳的文件,即纠正很久以前完成的错误。在这种特殊情况下它运作良好。当然,应该注意项目中没有依赖于命名错误的文件,并且一些提交消息可能会变得毫无意义。

这种方法的优点是其他人不必安装非标准扩展,只是为了能够检查出一个文件名非常错误的旧变更集。