From: Linus Torvalds Date: Mon, 16 Jul 2007 20:21:47 GMT Subject: Re: [PATCH] Do _not_ call unlink on a directory Message-ID: In-Reply-To: <20070716200024.GD16878@cip.informatik.uni-erlangen.de> On Mon, 16 Jul 2007, Thomas Glanzmann wrote: > > > so I think this patch is the best that can be done. > > is there a reason why we call unlink and not remove? Exactly because we only want to remove _files_. If it's already a directory, we don't need to do anything at all (we just want to go to the next path component). So what git wants is the modern "unlink()" behaviour that will return EPERM (oe EISDIR) for a directory. Not doing that in this day and age is *insane*. That whole "unlink/link" on directories is original UNIX, but it's original UNIX from several decades ago. It got fixed long long ago, and mkdir/rmdir have existed as system calls since at least SVR3. Nobody does the insane "unlink()" any more. Except in Solaris, it would appear. Linus