我可以用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
表现特征都符合我的利益。
答案 0 :(得分:2)
典型情况是你有多个链式git调用,每个调用都需要打开一个shell /进程。
但是在2017年,使用libgit2的大多数工具都开始回归包装方式(包装git调用而不是依赖于libgit2):示例Visual Studio 15。
Git本身会继续定期发展并修复错误或引入新功能,并且它们并不总是存在于libgit2中(如this example中所示)。
在你的情况下,对于基本的链式git函数,调用libgit2 的C程序可能更快,但你需要测量它。