Running Mercurial on Cygwin and Python 2.2 compatibility

Matt Mackall mpm at selenic.com
Wed May 11 23:59:45 UTC 2005


[cc:ed to mailing list, sorry for the duplicate]

On Wed, May 11, 2005 at 07:42:08PM -0400, Ren? Rh?aume wrote:
> Hello,
> I tried to use Mercurial 0.4d using the Python Cygwin provides (2.4 is 
> installed now) and I have have trouble with file name case. As you might 
> know, Windows compares filenames in a case insensitive way. Maybe you 
> can add a special case to use locale-aware compare when running on 
> Cygwin/Windows.

Things you're likely to run into trouble with in Windows:

- case sensitivity on names in data/*
- line ending conventions and the binary issues there
- we call out to patch and lsdiff in import
- we currently assume the availability of hardlinks for local branch
- I may have been lazy about os.path.join and the like in some places

Case-ignore compare.. filenames are currently binhexed 160 bit SHA
values. Folding case is going to drop one bit per character
worst-case, and the filenames are about 26 characters. This means
we're down to a 134 bit hash and birthday collision probability of
2^67. Probably fine.

I haven't touched a Windows machine in 10 years now, so if someone
wants to make this work there, they'll have to take it on. 

> I also tried on my old Mandrake Linux 9.0 based system, which has Python 
> 2.2.1. It complained that "yield" would become a keyword in future 
> versions of Python.

I believe the current bzr code has some smarts for finding the right
Python at runtime or bailing with a useful error message, if someone
wants to scavenge that for me. I think there are some other 2.3isms
lurking besides yield and I'd rather not remove them.

-- 
Mathematics is the supreme nostalgia of our time.



More information about the Mercurial mailing list