
git-bug v0.12.0 发布:改用系统 Git 配置并可调用系统 Git 二进制
来源标题:Git-bug v0.12.0 now uses host Git configuration and optionally host Git binary
git-bug v0.12.0 发布,距 v0.11.0 约六周、包含约 90 个提交,属维护版本。此次更新让 git-bug 使用宿主机的 Git 配置,并可选择调用宿主机的 Git 二进制程序。版本以修复缺陷为主,其中不少问题已存在多年,部分可追溯到 2020 年。
以下正文由 AI 翻译自 Hacker News 最新(原文版权归原站所有),可能存在偏差,重要内容请以原文为准。
Six weeks and about 90 commits after v0.11.0, git-bug v0.12.0 is available.
这是一个维护版本。没有大型新功能可以展示,但包含大量 bug 修复,其中不少是已经存在多年的问题,有些甚至可以追溯到 2020 年。
缓存位于 git 中存储的实体与其它所有部分之间:CLI、终端 UI、Web UI、桥接器。它过去有两个假设:持有缓存的进程是唯一接触仓库的进程,并且背后不会有任何变化。这两个假设都不成立,上面提到的很多 bug 都源于此。
该命令以原子方式将变更提交到 git,并在共享索引中更新对应的 bug。Web UI 进程会感知到 git 中的变更——无论它来自另一个 git-bug 进程还是来自一次 git push。它从索引中读取已经是最新的部分,只重建尚未更新的部分并写回,然后通过 GraphQL 订阅通知浏览器。
写入和失败也受到了同样的关注:
git-bug 通过 go-git 与 git 通信,而不是运行 git 二进制文件。这样做更安全,因为仓库配置或钩子中的任何内容都不会执行命令,而且比解析 git 命令的输出要容易得多。但 go-git 也存在不足,针对 git-bug 报告的相当一部分问题实际上源自那里。本版本绕过了其中的许多问题。
最大的一项是需要手动启用的:用于 push 和 pull 的原生 git 传输。
git config git-bug.git-transport git
启用后,git-bug 会运行你的 git 二进制文件来与远程仓库通信,因此你的 SSH 配置、SSH agent、凭据助手以及经过认证的 HTTPS 远程仓库的行为与使用 git 时完全一致。这解决了一整类问题:#940、#1023、#1316、#1416 和 #1485。go-git 仍是默认选项,如果你要求使用 git 但 PATH 中没有 git,git-bug 将无法启动。
已有多个 PR 提交到上游,以从源头修复这些问题。
正文由 探How 从来源站点 RSS 同步,内容未经改写;遇到排版缺失或需要图片、视频时请以原文为准。