Differences between revisions 4 and 5
Revision 4 as of 2010-03-19 19:41:17
Size: 1807
Comment: better wording
Revision 5 as of 2010-04-02 09:53:51
Size: 2052
Comment: added info on casecheck; changed some formatting
Deletions are marked like this. Additions are marked like this.
Line 10: Line 10:
Tested with: Mercurial 1.4.3 Tested with: Mercurial 1.4.3, 1.5.1
Line 21: Line 21:
 * ''addremove'' only looks at files to be added, and does not consider ''file'' to be a renamed version of ''FILE''  * `addremove` only looks at files to be added, and does not consider ''file'' to be a renamed version of ''FILE''
Line 25: Line 25:
Configure your .hgrc to enable the extension by adding following lines: Configure your `.hgrc` to enable the extension by adding following lines:
Line 34: Line 34:
caseguard wraps the '''add''' and '''addremove''' commands. The extension blocks the operations that might cause CaseFolding collisions, but does not otherwise affect regular operation. 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.
Line 36: Line 36:
If you would like to see a list of problematic files, use the '''--verbose''' switch. 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

This extension is not distributed with Mercurial.

Author: AlexandruTotolici

Download site: 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.


CategoryExtensionsByOthers

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