Mercurial:Windows 和 Linux 之间文件名中的非 ASCII 字母问题
我在 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
(问题文件名应该是 interfDesign,其中包含西里尔字母“е”。)我已经在 Linux 中重命名了该文件,提交并推送了更改,甚至可以看到此更改如果我在 Windows 中执行 hg in
。但我拉不动!有什么方法可以纠正这个问题并使存储库再次与 Windows 一起使用吗?
I have a central Hg repository on a samba server, and two working copies, one on a Ubuntu and one on a Windows 7 machine. Everything worked fine until I, by mistake, added to the project a file with a Russian letter in the name. I've done it in Linux. Mercurial has happily accepted it and in Linux everything still works. However I've discovered that I cannot pull changesets to Windows any longer. For hg pull
I get
pulling from ...
searching for changes
adding changesets
transaction abort!
rollback completed
abort: empty or missing revlog for figures/interfDðÁsign.svg
(The problematc filename should be interfDеsign, with Cyrillic 'е' in it.) I've renamed the file in Linux, committed and pushed the change, and can even see this change if I do hg in
in Windows. But I cannot pull it! Is there any way to correct this problem and make the repository work with Windows again?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
阅读此内容... http://groups.google.com/group/mercurial_general /browse_thread/thread/300a3f5e1a23592e
没有好消息:-)
但
可能有一个修复:试试这个 https://www .mercurial-scm.org/wiki/FixUtf8Extension
Read this... http://groups.google.com/group/mercurial_general/browse_thread/thread/300a3f5e1a23592e
There are no good news :-)
BUT
there could be a fix: try this https://www.mercurial-scm.org/wiki/FixUtf8Extension
我找到了另一种解决方案,或者更确切地说是一种解决方法。使用转换扩展,可以重命名命名不当的文件,即更正很久以前犯下的错误。在这种特殊情况下,它工作得很好。当然,应该小心的是,项目中不存在对命名错误的文件的依赖关系,而且一些提交消息可能变得毫无意义。
这种方法的优点是其他人不必仅仅为了能够签出文件名非常错误的旧变更集而安装非标准扩展。
I've found another solution, or rather a work around. With the Convert extension, it is possible to rename the poorly named file, i.e. to correct the mistake done long ago. In this particular case it worked fine. Of course, one should be careful that there are no dependencies on the badly named file in the project, and also some commit messages may get meaningless.
The advantage of this method is that other people don't have to install a non-standard extension for the mere sake of being able to check out an old changeset with a very wrong file name.