在什么情况下libgit2比git快?

时间:2017-06-03 03:58:59

标签: c git performance libgit2

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

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

输入时速度不是很快linux-kernel repo。我想知道libgit2是否可以对某些典型任务给予更多控制,并且这种方式或其他方式更快。<​​/ p>

我猜机会很低,因为Git存储库结构简单,所以git代码是它的一对一反映。但谁知道呢?任何不同的libgit2表现特征都符合我的利益。

1 个答案:

答案 0 :(得分:2)

典型情况是你有多个链式git调用,每个调用都需要打开一个shell /进程。

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

Git本身会继续定期发展并修复错误或引入新功能,并且它们并不总是存在于libgit2中(如this example中所示)。

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