Caseguard
This extension is not distributed with Mercurial.
Author: AlexandruTotolici
Repository: http://bitbucket.org/alexandru/caseguard
Tested with: Mercurial 1.4.3, 1.5.1
Overview
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)
Limitations
- This extension has not been tested on filenames containing characters outside the basic Roman set.
addremove only looks at files to be added, and does not consider file to be a renamed version of FILE
Configuration
Configure your .hgrc to enable the extension by adding following lines:
[extensions] caseguard = /full/path/to/caseguard.py
Usage
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
short |
long |
description |
-o |
--override |
add files regardless of possible case-collision problems |
-w |
--nowincheck |
do not check filenames for Windows incompatibilities |
-U |
--unguard |
completely skip checks related to case-collision problems |
Other Solutions
Other approaches are outlined at CaseFolding.