From: Kjetil Barvik Date: Wed, 29 Jul 2009 23:01:40 GMT Subject: Re: [PATCH v3] Demonstrate bugs when a directory is replaced with a symlink Message-ID: <86prbjm6uj.fsf@broadpark.no> In-Reply-To: Linus Torvalds writes: > On Wed, 29 Jul 2009, Pickens, James E wrote: >> >> This test creates two directories, a/b and a/b-2, then replaces a/b with >> a symlink to a/b-2, then merges that change into the 'baseline' commit, >> which contains an unrelated change. > > Great tests. > > This patch should fix the 'checkout' issue. > > I made it use a new generic helper function ("check_path()"), since there > are other cases like this that use just 'lstat()', and I bet we want to > change that. > > The 'merge' issue is different, though: it's not due to a blind 'lstat()', > but due to a blind 'unlink()' done by 'remove_path()'. I think > 'remove_path()' should be taught to look for symlinks, and remove just the > symlink - but that's a bit more work, especially since the symlink cache > doesn't seem to expose any way to get the "what is the first symlink path" > information. > > Kjetil, can you look at that? Yes, I will take a look. Also, on all the other mails CC'ed to me today. Give me a cople of days. Sorry, I do not work at "full normal speed" for the moment. But, I will try to my best. -- kjetil