libgit2 checkout options.paths忽略否定前缀

问题描述

使用libgit2我试图在我的工作树中的所有文件上运行git_checkout_tree,同时跳过一些特定文件。 像这样填充git_checkout_options checkout_opts

Integer

仍然签出myFile.dat(位于存储库根目录中)。我试图坚持使用.gitignore模式语法。我已经编译了libgit2,并试图让我的代码基础。我看到wildmatch.c定义了NEGATE_CLASS'!'和NEGATE_CLASS'^'。不幸的是,使用^ myFile.dat不起作用。 libgit2不支持模式否定吗?还是我做错了什么?

解决方法

issue 2263开始,libgit2尚不支持稀疏签出。

因此,git_checkout_tree可能不支持最近的野匹配(一年前,2019年6月,replacing fnmatch in PR 5110)。
tests/checkout/tree.c中没有测试否定路径。