Subject: Re: Git-SVN on Cygwin: svn+ssh good, https awkward

From: Eric Blake <[email-masked]>
Date: Thu, 23 Apr 2009 17:58:24 +0000 (UTC)

Matthias Andree <matthias.andree <at> gmx.de> writes:

> 3. UNDERLYING CYGWIN LIMITATIONS
> 
> * unlink a file and subsequent creation of a new file in the same location  
> is not supported.
> 
> * "delete on close" (unlinking an open file) is supported.

These last two points are old information.  I would first recommend that you 
try running the new cygwin 1.7 (still in beta), where unlink() semantics have 
been greatly improved (you can actually unlink() an in-use file and recreate a 
new file by the same name while the old handle is still open).

http://cygwin.com/#beta-test

> 4. FIX SUGGESTIONS AND QUESTIONS
> 
> Can we defer unlink()ing the tempfile until all handles to it are closed?
> 
> Can we let complete and wait for all processes that hold handles to the  
> tempfile.tmp file before attempting to create a new copy?
> 
> Can we use unique tempfile names (timestamps, counter, random number  
> generator) instead of the hardcoded "tempfile.tmp"? This is probably a  
> good idea anyways to evade symlink attacks.

Although newer cygwin may fix your particular problem, this is not a bad 
suggestion for msysgit, so I suspect someone may be bothered enough by this to 
write a patch.  I, however, will not be the one doing it.

-- 
Eric Blake