在什么情况下 libgit2 比 git 快?
In what scenarios libgit2 is faster than git?
我可以编写一个 Zsh
模块,其中包含 git
命令功能的某些子集。动机是加速提示。我使用的示例提示确实是:
changed_files=()
git diff --quiet 2> /dev/null || changed_files=(${(f)"$( git diff --name-only 2>/dev/null )"})
输入例如linux-内核回购。我想知道 libgit2 是否可以对某些典型任务提供更多控制,并以这种或其他方式更快。
我猜可能性很小,因为 Git
存储库结构简单,所以 git
代码是它的一对一反映。但谁知道呢?任何明显的 libgit2
性能特征都符合我的兴趣。
典型的情况是当您有多个链式 git 调用时,每个调用都必须打开一个 shell/process。
但在 2017 年,大多数使用 libgit2 的工具都开始回到包装方法(包装 git 调用而不是依赖 libgit2) : 示例 Visual Studio 15.
Git 本身继续定期发展并修复错误或引入新功能,它们并不总是存在于 libgit2 中(如 )。
在您的情况下,对于基本的链式 git 函数,调用 libgit2 的 C 程序可能 更快,但您需要对其进行测量.
我可以编写一个 Zsh
模块,其中包含 git
命令功能的某些子集。动机是加速提示。我使用的示例提示确实是:
changed_files=()
git diff --quiet 2> /dev/null || changed_files=(${(f)"$( git diff --name-only 2>/dev/null )"})
输入例如linux-内核回购。我想知道 libgit2 是否可以对某些典型任务提供更多控制,并以这种或其他方式更快。
我猜可能性很小,因为 Git
存储库结构简单,所以 git
代码是它的一对一反映。但谁知道呢?任何明显的 libgit2
性能特征都符合我的兴趣。
典型的情况是当您有多个链式 git 调用时,每个调用都必须打开一个 shell/process。
但在 2017 年,大多数使用 libgit2 的工具都开始回到包装方法(包装 git 调用而不是依赖 libgit2) : 示例 Visual Studio 15.
Git 本身继续定期发展并修复错误或引入新功能,它们并不总是存在于 libgit2 中(如
在您的情况下,对于基本的链式 git 函数,调用 libgit2 的 C 程序可能 更快,但您需要对其进行测量.