Re: [PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-20 Thread Jonathan Tan
> Jonathan Tan writes: > > >> OK. We notice that we need to newly create foo/bar but we > >> incorrectly find that there is "foo/bar" already because of the > >> careless use of bare lstat(2) makes "bar" visible as if it were also > >> "foo/bar". I wonder if the current code would be confused t

Re: [PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-20 Thread Junio C Hamano
Jonathan Tan writes: >> OK. We notice that we need to newly create foo/bar but we >> incorrectly find that there is "foo/bar" already because of the >> careless use of bare lstat(2) makes "bar" visible as if it were also >> "foo/bar". I wonder if the current code would be confused the same >> w

Re: [PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-20 Thread Jonathan Tan
> OK. We notice that we need to newly create foo/bar but we > incorrectly find that there is "foo/bar" already because of the > careless use of bare lstat(2) makes "bar" visible as if it were also > "foo/bar". I wonder if the current code would be confused the same > way if the side branch added

Re: [PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-20 Thread Junio C Hamano
Jonathan Tan writes: > When the working tree has: > - bar (directory) > - bar/file (file) > - foo (symlink to .) > > (note that lstat() for "foo/bar" would tell us that it is a directory) > > and the user merges a commit that deletes the foo symlink and instead > contains: > - bar (directory,

Re: [PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-18 Thread Elijah Newren
On Wed, Sep 18, 2019 at 1:27 PM Jonathan Tan wrote: > > When the working tree has: > - bar (directory) > - bar/file (file) > - foo (symlink to .) > > (note that lstat() for "foo/bar" would tell us that it is a directory) > > and the user merges a commit that deletes the foo symlink and instead

[PATCH v2] merge-recursive: symlink's descendants not in way

2019-09-18 Thread Jonathan Tan
When the working tree has: - bar (directory) - bar/file (file) - foo (symlink to .) (note that lstat() for "foo/bar" would tell us that it is a directory) and the user merges a commit that deletes the foo symlink and instead contains: - bar (directory, as above) - bar/file (file, as above)