![WSL-bash 启动的 Windows 应用程序专门锁定文件](https://linux22.com/image/1561325/WSL-bash%20%E5%90%AF%E5%8A%A8%E7%9A%84%20Windows%20%E5%BA%94%E7%94%A8%E7%A8%8B%E5%BA%8F%E4%B8%93%E9%97%A8%E9%94%81%E5%AE%9A%E6%96%87%E4%BB%B6.png)
我正在使用 WSL(适用于 Linux 的 Windows 子系统)bash 来处理 Visual Studio 项目上的 git 命令。我已将命令difftool
配置为启动 Beyond Compare(Windows 程序)。我看到的是 Beyond Compare 专门锁定了它显示的文件。当 Beyond Compare 关闭时,文件将解锁。直接从 Windows 使用的 Beyond Compare 不会锁定文件。
重现步骤:
- 设置 git config difftool 以使用 Beyond Compare 1
- 编辑源文件
- 运行 difftool (
git difftool &
) 启动 Beyond Compare - 对源文件进行另一次编辑(例如,使用 Visual Studio 或 Visual Studio Code)并尝试保存文件
- 观察保存文件时的错误
我可以在 Beyond Compare 中进行编辑,但很多时候更喜欢在 Visual Studio 中进行编辑。
有没有什么办法/解决方法可以解决这个问题?
我确实找到了这个文章关于, 我将在将来获得支持它的 Windows 版本(17093 而不是我当前的 16299)时尝试
wls.conf
进行设置。是否有 wsl.conf 可以解决我的问题?/etc/wsl.conf
[automount] enabled=true options=uid=1000,umask=0022,fmask=0022,dmask=0022
1 [difftool“bcomp”]
cmd = \“/mnt/c/Program Files/Beyond Compare 4/BComp.exe\” \“$(winpath \“$LOCAL\”)\” \“$(winpath \“$REMOTE\”)\” /lefttitle=\“$(winpath \“$LOCAL\”)\” /righttitle=\“$(winpath \“$REMOTE\”)\”
答案1
我找到了一个适合我的解决方案,那就是升级到 Windows 1903。1903 版本的 WSL 使用9P协议文件服务器从而解决了问题。