我目前正在实施 Gerrit 作为中央代码审查系统。在试图了解 Gerrit 来龙去脉的过程中,我卡在了下面这句话上。取自Gerrit 文档:
由于 Gerrit 在其自己的进程空间内实现了整个 SSH 和 Git 服务器堆栈,因此 Gerrit 可以完全控制存储库的更新方式,以及
git push
最终用户或repo upload
. 这允许 Gerrit 提供神奇的 refs,例如refs/for/*
用于新的变更提交和refs/changes/*
变更替换。
上面的陈述是什么意思,特别是这句话:“由于 Gerrit 在自己的进程空间内实现了整个 SSH 和 Git 服务器堆栈”?我尝试搜索相关问题,但我找到的最接近的问题是Why is git push gerrit HEAD:refs/for/master used instead of git push origin master,但它没有提供关于如何实现服务器堆栈的充分解释允许 Gerrit 提供神奇的 refs。如果之前确实有人问过类似的问题,我们深表歉意。谢谢!