Renaming a file to the same name with different casing on a WSL
Opened this issue · 1 comments
Description
When renaming a file that is on windows into its version with a different casing the NvimTree raises an error and refuses the rename. For instance, renaming A.txt -> a.txt is impossible, unless done via another unoccupied name A.txt -> tmp.txt -> a.txt.
Neovim version
NVIM v0.10.2
Build type: Release
LuaJIT 2.1.1713484068
Operating system and version
Debian 12, Linux 5.15.167.4-microsoft-standard-WSL2
Windows variant
WSL
nvim-tree version
Clean room replication
No additional configuration required.Steps to reproduce
- Open WSL.
- Go to a directory that belongs to windows (usually
/mnt/c/Users/<USERNAME>). - Ensure that you have read/write permissions for the directory
- Create a file with an all-capital name (e.g.
A.txt) - Open it in neovim using
nvim -nu /tmp/nvt-min.lua. - Open the sidebar using
:NvimTreeOpen. - Locate and navigate to the created file (e.g.
A.txt). - Press
rand rename it to the lowercase version of its name (e.g.A.txt->a.txt). - Observe
[NvimTree] Cannot rename /mnt/c/Users/<USERNAME>/A.txt -> /mnt/c/Users/<USERNAME>/a.txt: file already exists.
Expected behavior
Step 9 should leave the file renamed and output like [NvimTree] /mnt/c/Users/<USERNAME>/A.txt -> /mnt/c/Users/<USERNAME>/a.txt.
Actual behavior
Step 9, error, no file renamed.
Honestly, I don't think this is achievable with windows mapping a case insensitive with a case sensitive file system.
After many attempts we did finally get this working on macos #2814, with just one file system.
The nvim-tree team doesn't have expertise with or access to windows however you're welcome to contribute a fix.
Please ensure that all new or modified codepaths are behind the appropriate windows feature flag.