feature or bug?

Mark A. Flacy mflacy at verizon.net
Thu Jan 3 22:44:41 CST 2008


On 2008.01.03 10:19, Patrick Mézard wrote:
> Mark A. Flacy a écrit :
> > IMO, the attempts by hg to mask NTFS file naming problems was a lot  
> of
> > misguided effort that  simply pushed the problem (file collisions  
> due to
> > case) somewhere else (file name too long).  I can see why they tried
> > (host a repo on a Windows box), but lipstick on a pig still leaves  
> you
> > with a pig.
> 
> HFS+ is case-preserving too by default.

[Comments written and deleted.  You could probably guess what they would  
have been.]

> If you want interoperability, you have to handle these issues,  
> otherwise you will break repositories randomly.

Fixing these interoperability problems between filesystems is *not*  
something for the version control system to fix.

Unless you provide a virtual file system to fix it; otherwise no matter  
what you do to try to hide the problem, you can end up with repositories  
that cannot have valid working directories in the case-preserving  
environment.
> 
> > They could try some magic with hashing the file names and using the  
> hex
> > string of the hash instead of the file name, but that's not going to  
> be
> > fast and the reverse mapping would require a dictionary somewhere.
> 
> For reference, what you are talking about is proposed here:
> 
> http://www.selenic.com/mercurial/bts/issue839

*Shrugs* Well, knock yourselves out.

http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/naming_a_file.asp  
has all the nasty NTFS details on path length.

IMO, you would be much much better off figuring out a way to enabling a  
repository flag that enforces case-preserving commits no matter what the  
original file system is able to support.

-- 
Mark A. Flacy



More information about the Mercurial mailing list