vscode 解析 .gitignore 文件与 git 不匹配,导致 cmd+p 无法找到任何文件,

nzrxty8p  于 4个月前  发布在  Vscode
关注(0)|答案(4)|浏览(43)

这个问题在所有扩展都被禁用时是否会发生?:是的
VS Code 版本:

Version: 1.85.1
Commit: 0ee08df0cf4527e40edc9aa28f4b5bd38bbff2b2
Date: 2023-12-13T09:48:16.874Z (3 wks ago)
Electron: 25.9.7
ElectronBuildId: 25551756
Chromium: 114.0.5735.289
Node.js: 18.15.0
V8: 11.4.183.29-electron.0
OS: Darwin arm64 23.2.0

重现步骤:
简单方法:

git clone https://github.com/gskinner/regexr.git
cd regexr
git checkout 1e382719041f8b1e5290472e14e2c98a6c05b61a
code .

然后按 Cmd+p 并输入任意文件名。
手动方法:

  1. 创建一个新目录
  2. git init
  3. 创建一些文件并提交它们
  4. 添加以下 .gitignore:
#-----------------------------
# INVALID FILES
# (for cross OS compatibility)
#-----------------------------
*[\<\>\:\"\/\\\|\?\*]*
  1. 提交它
  2. 在 VS Code 中打开项目以搜索使用 Cmd+P 创建的任何文件
    除非您已经在编辑器中打开了这些文件,否则它将找不到任何文件。

删除该行并保存后,文件将再次被找到

我在克隆的一个项目中找到了这个正则表达式,似乎 git 必须以不同的方式解析它,因为显然 git 没有忽略所有文件。
这个问题是 #48771 的后续问题。

wsxa1bj1

wsxa1bj11#

@roblourens在处理提到的问题时加入。

8ehkhllq

8ehkhllq2#

有趣的是,似乎匹配 / 实际上是在匹配路径分隔符,因此在文件夹下的任何内容都会被忽略,而在 git 中并不是这样工作的。
@andreamah 您可以验证我是否正确,并检查 rg 本身是否也具有相同的效果,然后向上游报告问题。

rdlzhqv9

rdlzhqv93#

确认在最新的rg版本的WSL中发生了这种情况,已使用ripgrep提交了BurntSushi/ripgrep#2745文件。

tpxzln5u

tpxzln5u4#

我建议您为此创建一个新问题。然而,请注意:我们使用 ripgrep 作为搜索引擎,因此 gitignore 文件的解释取决于他们。所以我建议您尝试仅使用 ripgrep 来查看您是否能在他们的平台上重现它。

相关问题