From: Christopher Faylor Date: Wed, 05 Oct 2005 16:15:46 GMT Subject: Re: First cut at git port to Cygwin Message-ID: <20051005161546.GB30303@trixie.casa.cgf.cx> In-Reply-To: On Wed, Oct 05, 2005 at 09:09:49AM -0700, Davide Libenzi wrote: >On 10/5/05, Alex Riesen wrote: >>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). > >I don't know how Cygwin implemented rename(), but if they used >MoveFile() they broke the POSIX rename() since MoveFile() fails if >destination already exists. They should have used >MoveFileEx(MOVEFILE_REPLACE_EXISTING) instead, to guarantee POSIX >semantics. The symptoms you're experiencing make me think this might >be the case (even if it is strange, since other Unix software would >fail the same way). Cygwin's rename is much more than just a simple wrapper around MoveFile or MoveFileEx. It tries hard to guarantee POSIX semantics within the strictures imposed by Windows. -- Christopher Faylor spammer? -> aaaspam@sourceware.org Cygwin Co-Project Leader aaaspam@duffek.com TimeSys, Inc.