This extension is not distributed with Mercurial.

Author: AlexandruTotolici


Tested with: Mercurial 1.4.3, 1.5.1


caseguard is an extension that helps Mercurial users avoid case-folding collisions by verifying that the files they are adding to a repository differ in more than just case to anything that's already tracked (i.e. if the repo tracks file, adding FILE will be blocked since it would cause a collision).

It also watches and blocks the addition of file names that are known to cause problems on Windows. (i.e. AUX, COM1 etc)



Configure your .hgrc to enable the extension by adding following lines:

caseguard = /full/path/to/


caseguard wraps the add and addremove commands by checking that the files to be added don't have case-insensitive equivalents in the repository already or have reserved names. For example, if file foo is tracked by the repository, and the user wants to add FoO, caseguard will block.

If you would like to see a list of problematic files, use the --verbose switch.

To check an existing repository for issues, use hg casecheck. This will print out a list of problematic files, if any.

caseguard-specific options






add files regardless of possible case-collision problems



do not check filenames for Windows incompatibilities



completely skip checks related to case-collision problems

Other Solutions

Other approaches are outlined at CaseFolding.


CaseGuardExtension (last edited 2011-04-02 00:20:30 by GregWard)