修复mercurial 错误 —— abort: case-folding collision between XXX

修复mercurial 错误 —— abort: case-folding collision between XXX

这段时间在做平台移植,Mac下push版本到Windows后,我跑到Windows系统下update,Mercurial随即报错:abort: case-folding collision between XXX。

上网查了下资料,发现Mercurial版本库在大小写敏感和大小写不敏感的操作系统之间协同工作,就会出现这个问题。遇到这种情况可以参考Mercurial Wiki :FixingCaseCollisions

On Windows, it is currently (before Mercurial 1.1) possible to introduce case collisions in the repo that prevent you from checking out a repository.

One way to repair such a repository is to check it out on a case-sensitive Unix system, remove the problematic file, and commit it again.

If that's not possible, you can do the following:

  • hg clone --noupdate repo repair
  • cd repair
  • hg debugsetparents <bad revision>

  • hg debugrebuildstate

At this point, Mercurial will think you have the bad revision checked out and all the files are missing (status '!'). To fix the repo, we simply have to do:

  • hg remove --after <file causing the collision>

Now hg status should show the troublesome file in state 'R' and all other files in state '!'. Now we can check in our fix:

  • hg commit --message "fix case collision"

To get all our files back, we just check out again:

  • hg update tip

Or you can install the CaseFoldExtension and use this:

hg up --fold


最简单的解决办法:到大小写敏感的操作系统下删除重复的文件(目录),然后提交(提交前注意合并)。





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值