On Tue, 4 Feb 2025, Roland Mainz via Cygwin wrote: > it seems that Cygwin does not support |IO_REPARSE_TAG_MOUNTPOINT| for > "remote" filesystems: > ---- snip ---- > 2582 /* Don't handle junctions on remote filesystems as > symlinks. This type > 2583 of reparse point is handled transparently by the OS so that > the > 2584 target of the junction is the remote directory it is > supposed to > 2585 point to. If we handle it as symlink, it will be mistreated > as > 2586 pointing to a dir on the local system. */ > > The matching code in our filesystems seems to work in PowerShell and > cmd.exe - so what context am I missing ?
The comment seemed to explain it pretty well. Junctions are always absolute. If it is absolute to a local path, that path is local to the server, not the client. If Cygwin treated it as a symlink, it would see the target as /cygdrive/c/whatever and would try to follow that to the client-local directory. By *not* treating those as symlinks, it will instead treat them as ordinary directories to be traversed, which will allow the OS to handle them as normal. Perhaps it could be relaxed to allow remote junctions to be treated as symlinks if their targets are UNC rather than local? Is that the case your filesystems are exposing? -- Problem reports: https://cygwin.com/problems.html FAQ: https://cygwin.com/faq/ Documentation: https://cygwin.com/docs.html Unsubscribe info: https://cygwin.com/ml/#unsubscribe-simple