2010-08-19 58 views
12
  1. 首先我有一个文件名自述
  2. 然后我把它改为README
  3. 提交

确定的问题是有两个文件:自述和READMEMercurial HG表壳折叠碰撞?

我如何删除存储库上的自述文件?

当我更新我得到这个错误 中止:病例折叠自述和README之间的碰撞

+0

[在Windows中解决水银案例折叠冲突]可能的副本(https://stackoverflow.com/questions/10531853/resolving-mercurial-case-folding-collision-in-windows) – DaveInCaz 2017-08-10 21:23:54

回答

14

水银可以处理在同一目录顶部的仓库内的区别仅仅在于他们的情况(.hg目录文件名你的回购水平)。在区分大小写的文件系统上(大部分位于unix),它也可以处理工作目录中的这些文件。但是,在仅保留大小写的系统上,操作系统不会让同一个目录中的两个文件仅以大小写区分,并且Mercurial会警告您(如您所见)。

要解决OS的此限制,请在区分大小写的文件系统上签出您的克隆,删除该文件,然后提交/推送。只要窗口的人不是hg updating到有碰撞的版本,他们会没事的(因为在版本库中没关系,只是不在他们的工作目录中)。

+0

谢谢:) btw结帐您的在区分大小写的文件系统上克隆? – 2010-08-21 09:46:09

+0

区分大小写的文件系统= Linux/BSD – Vlad 2012-03-22 17:10:09

+7

不是一个非常实用的解决方案... – Justin 2013-06-11 19:40:44

1

这个问题是一个副本,并可以折叠成Resolving Mercurial Case-Folding Collision in Windows

我的意见有没有问别人区分大小写的文件系统中的工作有点heavyhanded,甚至Cygwin的同意。将干净的解决方案假设两个文件似乎是:

  1. 汞恢复到分支的头部被合并有
  2. 汞除去//然后提交等
  3. 检查的文件历史记录。这可能是一些加法被错误地重命名的文件
  4. 如果这样做,手动将这些变化添加到
0

如果这是一个重命名,喜欢的abc.txt这就是移动到的abc.txt

威尔以下工作?

拿一个补丁, 查看新鲜的代码, 在它上面应用补丁。 然后提交n推

1

假设您想使自述文件成为自述文件。

hg mv readme foofile 
hg mv foofile README 

做到这一点,并提交这些更改,回购应再次使用。

0

我有这个问题,当我执行Update到一个特定的修订版发生了case-collision。所讨论的修订是专门为解决重新命名文件的情况折叠冲突而进行的。不幸的是,Mercurial不会允许我去修改Update

但是,我仍然可以在Update之前和之后进行修订。因此,如果您在Windows(或类似的不区分大小写的文件系统)上遇到此问题,而只是针对特定的修订版,则可能会在Update之前或之后绕过问题修订版。