我可以编写一个具有 git
命令功能子集的 Zsh
模块。动机是加速提示。我使用的示例提示:
changed_files=()
git diff --quiet 2> /dev/null || changed_files=(${(f)"$( git diff --name-only 2>/dev/null )"})
输入时速度不是很快linux 内核 repo 。我想知道 libgit2 是否可以对某些典型任务提供更多控制,并以这种或其他方式更快。</p>
我猜可能性很小,因为 Git
存储库结构简单,所以 git
代码是它的一对一反射(reflect)。但谁知道呢?任何独特的 libgit2
性能特征都符合我的兴趣。
最佳答案
典型的场景是当您有多个链式 git 调用时,每个调用都必须打开一个 shell/进程。
但在 2017 年,大多数使用 libgit2 的工具都开始回到包装方法(包装 git 调用而不是依赖 libgit2):示例 Visual Studio 15 .
Git 本身继续定期发展并修复错误或引入新功能,它们并不总是存在于 libgit2 中(如 this example 中)。
在您的情况下,对于基本的链式 git 函数,调用 libgit2 的 C 程序可能更快,但您需要对其进行衡量。
关于c - 在什么情况下 libgit2 比 git 快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44340094/