我在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一起使用?
答案 0 :(得分:2)
阅读本文... http://groups.google.com/group/mercurial_general/browse_thread/thread/300a3f5e1a23592e 没有好消息: - )
BUT
可能有一个问题:尝试此https://www.mercurial-scm.org/wiki/FixUtf8Extension
答案 1 :(得分:0)
我找到了另一种解决方案,或者说是一种解决方法。使用Convert extension,可以重命名命名不佳的文件,即纠正很久以前完成的错误。在这种特殊情况下它运作良好。当然,应该注意项目中没有依赖于命名错误的文件,并且一些提交消息可能会变得毫无意义。
这种方法的优点是其他人不必安装非标准扩展,只是为了能够检查出一个文件名非常错误的旧变更集。