Mercurial case-folding BIG BUG
Guo Tang
tangguo77 at gmail.com
Sun Feb 3 12:10:58 CST 2008
I am using Windows at work. So I had tried to figure out a solution for
hg. The idea I had was using os.walk() to get the case sensitive file
names from NTFS. Then before hg asking the status of a file, it first
check against os.walk() result to make sure the file is really there.
But when I checked the performance of os.walk(), it is not good. For my
clearcase source codes, I have 53,000 files. It took os.walk() 53 seconds
to finish. The performance hit is just too big to make the fix useful.
I would say if we can find a way to do this faster (like less than 1
second for 50k files), it might be useful to add a flag to turn it on.
It might be interesting for TortoiseHg to solve this problem. I know
TortoiseSVN has some way of "caching" file status (maybe also case
sensitive file name?). Or any notification hook from OS to user land
application that something has changed inside this folder? Then we once
pay this price once.
regards,
Guo
On Sat, 2 Feb 2008, Dustin Sallings wrote:
>
> On Feb 2, 2008, at 12:35, Filippo Pedron wrote:
>
> > To solve my problem and update my working directory, I disabled the
> > case-folding collision check in the source code.
>
>
> If you disable the check, then what happens when the collision occurs?
>
> If your filesystem can't tell the difference between FOO.TXT and
> foo.txt, how should mercurial (or any revision control system) apply
> changes to one or the other (or Foo.Txt)?
>
> --
> Dustin Sallings
>
>
>
> _______________________________________________
> Mercurial mailing list
> Mercurial at selenic.com
> http://selenic.com/mailman/listinfo/mercurial
>
More information about the Mercurial
mailing list