在什么场景下libgit2比git更快?

psp*_*int 3 c git performance libgit2

我可以编写一个Zsh具有某些git-command 功能子集的模块。动机是加速提示。我使用的示例提示是:

    changed_files=()
    git diff --quiet 2> /dev/null || changed_files=(${(f)"$( git diff --name-only 2>/dev/null )"})
Run Code Online (Sandbox Code Playgroud)

当进入例如 linux-kernel repo 时,这不是很快。我想知道 libgit2 是否可以对某些典型任务提供更多控制,并且以这种或其他方式更快。

我想可能性很小,因为Git存储库结构简单,所以git代码是它的一对一反映。但谁知道呢?任何独特的libgit2表现特征都符合我的兴趣。

Von*_*onC 5

典型的场景是当您有多个链接的 git 调用时,每个调用都必须打开一个 shell/进程。

但在 2017 年,大多数使用 libgit2 的工具开始回归包装方法(包装 git 调用而不是依赖 libgit2):示例Visual Studio 15 .

Git 本身不断定期发展并修复错误或引入新功能,并且它们并不总是出现在 libgit2 中(如本例所示)。

在您的情况下,对于基本的链式 git 函数,调用 libgit2 的 C 程序可能会更快,但您需要对其进行测量。