Resolving Mercurial Case-Folding Collision in Windows

There is a filesystem help topic being worked on that will be included in the next version of Mercurial:

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

Renaming colliding files

On case-insensitive filesystems, updating to revisions which have
files with case collisions will abort, even with
--check or --clean.

To repair such revisions, you should give new names to one or both of
the colliding files on a case-sensitive filesystem, and commit them to
create new collision safe revision.

.. note::
If you want to (or need to) browse or repair such
revisions on case-insensitive filesystems, please see ‘Updating
manually’ section.

If :hg:merge is aborted, but :hg:update --check to each
revisions successes, collision occurs between revision to be merged.

In this case, files in one of them or both should be renamed to avoid
collision before merging.

With recent Mercurial, you can change case of filename safely in steps
below, even on case-insensitive filesystems::

$ hg rename a.txt tmp
$ hg rename tmp A.TXT

Updating manually

If you want to (or need to) update working directory by the
revision causing case-folding collision on case-insensitive
filesystems, to rename colliding files or browsing contents at such
revision for example, please see the Wiki page below::

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

This is NOT recommended for non expert Mercurial users.

Another similar manual method is described here:

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

This also dives rather deep into Mercurial internals though, so you should avoid it unless as a last resort.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)