jj icon indicating copy to clipboard operation
jj copied to clipboard

Windows: UNC paths do not work well with other programs

Open mlcui-corp opened this issue 7 months ago • 0 comments

This is acknowledged in the documentation for std::fs::canonicalize:

On Windows, this converts the path to use extended length path syntax, which allows your program to use longer path names, but means you can only join backslash-delimited paths to it, and it may be incompatible with other applications (if passed to the application on the command-line, or written to a file another application may read).

and in the documentation for dunce, a Rust crate:

[UNC paths] are more robust and with fewer gotchas [compared to regular/legacy paths], but are rarely supported by Windows programs. Even Microsoft’s own!

This is causing issues - for example, setting IntelliJ IDEA as a diff editor does not work, but setting it as a merge editor does work - probably due to the inconsistent canonicalize-ation of the paths.

I think the most straightforward solution would be to use the aforementioned crate dunce, which could strip the prefix (if possible) before calling external tools.

mlcui-corp avatar Jun 28 '24 09:06 mlcui-corp