[issue2947] Create option for case-insensitive repository format

Aaron Jensen bugs at mercurial.selenic.com
Tue Aug 9 13:26:34 CDT 2011


New submission from Aaron Jensen <ajensen at webmd.net>:

We are constantly getting bitten by case-folding issues.  While Mercurial has 
made great strides to make these less common, we still encounter them.  When 
they happen, they are very painful.  We're trying to write scripts we can use to 
automatically fix the issue, but it can still take up to an hour.  We've lost at 
least a week of developer productivity to case-folding issues.

We are a Windows-only company and will *never* have to check anything out on a 
case-sensitive file system.  To use HELLO.txt and hello.txt are the same file.  
We an option to get Mercurial to behave the same way. I would like to request 
that an optional, internal repository format be created that does not try and 
preserve case.  

The underlying issue we continue to encounter is when a developer inadvertently 
adds files with a case that doesn't match existing containers.  For example, 
let's say I have a Libraries folder where all our code is kept:

  Libraries
    +- LibraryA
    +- LibraryB

A developer adds a new library, LibraryC, but fat-fingers the case of the top-
level folder, i.e.,

  > hg add LIbraries/LibraryC

So now, internally, Mercurial thinks there are two separate Libraries folders, 
Libraries and LIbraries.  As developers clone the repository, some of them end 
up with a Libraries folder and some, LIbraries.  If one dev modifies a file 
under LIbraries, and another dev modifies the same file under Libraries, when 
one of them has to merge the other's changes, a case-folding collision occurs.

I would like Mercurial to not preserve case when a path already exists.  In this 
example, when a developer inadvertently fat-fingered the name of the name of the 
Libraries folder as LIbraries, Mercurial should use the original case of 
Libraries.

----------
messages: 17096
nosy: splatteredbits
priority: feature
status: unread
title: Create option for case-insensitive repository format

____________________________________________________
Mercurial issue tracker <bugs at mercurial.selenic.com>
<http://mercurial.selenic.com/bts/issue2947>
____________________________________________________


More information about the Mercurial-devel mailing list