0

我目前正在编写一个基于简单Node.js的修订系统:只是commit,没有什么花哨的brunchrevert只是一个保持技能形状的练习。我使用 sqlite 作为数据后端,具有以下简单的 shema:

commitid int
parentid int
branch text
diff blob

现在,当我切换分支时,我需要遍历所有提交并将差异相互应用,这可能适用于 10 次提交,但对于 1000 次提交,这肯定需要一些时间。其他系统喜欢Hggit在几秒钟内切换分支,并且(实际问题)我想知道它们是否像每 100 次提交一样保留某种缓存,或者如何处理?

4

1 回答 1

0

好吧,可以肯定的一件事是,在 git 中:

  • 你可以有几个父母
  • 分支名称不是提交的一部分:同一个提交可以属于多个分支

此外,git 中的 blob 不是 diff,而是完整文件;但据我所知,hg 保持差异。

于 2012-09-20T12:58:49.140 回答