首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Windows中解决Mercurial Case-Folding冲突

在Windows中解决Mercurial Case-Folding冲突
EN

Stack Overflow用户
提问于 2012-05-10 18:12:35
回答 9查看 22.6K关注 0票数 31

我在StackOverflow上看到过其他易变的大小写答案-他们说,如果你可以访问像unix这样的大小写敏感的文件系统,那么在那里查看一下,它应该会修复它。问题是,我不能使用unix机器,我是一个开发windows应用程序的windows开发人员。

如果没有Unix机器,我该如何解决这个问题?

EN

回答 9

Stack Overflow用户

回答已采纳

发布于 2012-05-10 19:29:50

下一版本的Mercurial中将包含一个filesystem帮助主题:

https://www.mercurial-scm.org/pipermail/mercurial-devel/2012-April/039522.html

重命名冲突文件

在不区分大小写的文件系统上,更新到具有大小写冲突文件的修订版本将中止,即使使用--check--clean也是如此。

要修复此类修订,应为区分大小写的文件系统上的一个或两个冲突文件指定新名称,并提交它们以创建新的冲突安全修订。

。。注意:如果您想(或需要)浏览或修复不区分大小写的文件系统上的此类修订,请参阅“手动更新”部分。

如果:hg:merge中止,但:hg:update --check成功连接到每个修订,则要合并的修订之间会发生冲突。

在这种情况下,应重命名其中一个或两个文件,以避免在合并之前发生冲突。

使用最近的Mercurial,您可以按照以下步骤安全地更改文件名的大小写,即使在不区分大小写的文件系统上也是如此:

$ hg重命名a.txt tmp $ hg重命名tmp A.TXT

手动更新

如果您想(或需要)通过在不区分大小写的文件系统上引起大小写折叠冲突的修订版来更新工作目录,例如重命名冲突文件或浏览此类修订版的内容,请参阅以下Wiki页面:

https://www.mercurial-scm.org/wiki/ManualCheckout

对于非专业Mercurial用户,不建议这样做。

这里描述了另一种类似的手动方法:

https://www.mercurial-scm.org/wiki/FixingCaseCollisions

这也深入到了易变的内部,所以除非万不得已,否则你应该避免这样做。

票数 29
EN

Stack Overflow用户

发布于 2013-05-03 23:06:17

我们通过发出HG rename命令解决了这个问题,而不是求助于区分大小写的文件系统。假设你遇到麻烦了,因为"Foo.txt“需要被称为"foo.txt":

代码语言:javascript
复制
hg rename Foo.txt Foo.txt.renamed
hg rename Foo.txt.renamed foo.txt

当一个文件被删除,然后在主存储库中以相同的名称重新创建,但大小写不同时,我们遇到了这个问题。在这些更改之前创建的分支存储库无法合并,尽管来自主存储库的变更集已被提取。

票数 14
EN

Stack Overflow用户

发布于 2012-05-10 18:30:17

为了在windows上得到一个案例折叠的问题,我猜你在repo中的不同分支或头部中有不同的案例,这在合并时会成为一个问题。我不明白(在Windows上)你怎么能在同一个版本中得到两种不同的情况,而不是通过unix盒。

所以,如果它们在不同的版本中,那么你可以这样做:

代码语言:javascript
复制
hg update <some rev>
hg remove -A -f "Some File"

那么合并就会成功,ok。-A代表“after”,而-f将“强制”。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10531853

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档