我在StackOverflow上看到过其他易变的大小写答案-他们说,如果你可以访问像unix这样的大小写敏感的文件系统,那么在那里查看一下,它应该会修复它。问题是,我不能使用unix机器,我是一个开发windows应用程序的windows开发人员。
如果没有Unix机器,我该如何解决这个问题?
发布于 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
这也深入到了易变的内部,所以除非万不得已,否则你应该避免这样做。
发布于 2013-05-03 23:06:17
我们通过发出HG rename命令解决了这个问题,而不是求助于区分大小写的文件系统。假设你遇到麻烦了,因为"Foo.txt“需要被称为"foo.txt":
hg rename Foo.txt Foo.txt.renamed
hg rename Foo.txt.renamed foo.txt当一个文件被删除,然后在主存储库中以相同的名称重新创建,但大小写不同时,我们遇到了这个问题。在这些更改之前创建的分支存储库无法合并,尽管来自主存储库的变更集已被提取。
发布于 2012-05-10 18:30:17
为了在windows上得到一个案例折叠的问题,我猜你在repo中的不同分支或头部中有不同的案例,这在合并时会成为一个问题。我不明白(在Windows上)你怎么能在同一个版本中得到两种不同的情况,而不是通过unix盒。
所以,如果它们在不同的版本中,那么你可以这样做:
hg update <some rev>
hg remove -A -f "Some File"那么合并就会成功,ok。-A代表“after”,而-f将“强制”。
https://stackoverflow.com/questions/10531853
复制相似问题