On 10/5/05, Alex Riesen wrote: > On 10/4/05, H. Peter Anvin wrote: > > > I noticed that rename(2) in my copy of cygwin (1.5.18-1) does not remove the > > > target and returns an error (probably EPERM, but I have reasons not to trust > > > strerror on that thing). > > > The repository was on FAT. > > > Taking "rename(2)" from cygwin's libiberty solved this (they unlink if link(2) > > > returns EEXIST). > > > > > > PS: Does broken rename(2) qualify a system "not worthy to support"? > > > > I just tried this with Cygwin 1.5.18-1 and didn't have any such > > problems. I tried it on NTFS, FAT and Samba, using WinXP. > > It's on Win2k, there was multiple cygwin installations in path, the other one > supposedly is 1.5.5 (it's from QNX Momentics installation). > I had that old "cygwin1.dll" renamed into "cygwin1.dll-disabled" long > ago, though... > I can't reproduce this out of GIT context, and the error is not > reproducable after > I removed the other cygwin installation out of PATH. > Anyway, sorry, I should have tried this before posting. Still does not work for me. I cannot isolate the problem out of git, but at the moment the only way for me to make commit_index_file to work is to put unlink(indexfile) before rename(cf->lockfile, indexfile). For everyone interested, I attach cygwin's strace output here.