2012-09-20 146 views
0

我目前正在編寫一個簡單的基於Node.js的修訂系統:只是commit,brunchrevert沒有什麼奇特的,只是一個練習來保持技能的形狀。我使用SQLite作爲數據的後端有以下簡單瑪:版本控制系統歷史處理

commitid int 
parentid int 
branch text 
diff blob 

現在,當我切換分支,我需要遍歷所有提交併在上面應用上相互比較,它可能會奏效罰款10承諾但有1000這肯定需要一些時間。其他系統如Hggit轉換分支在幾秒鐘內,和(實際問題)我不知道他們保持某種緩存像每100次提交,或者如何處理?

+0

萬一有人看中這個話題[這裏是](http://ftp.newartisans.com/pub/git.from.bottom.up.pdf)一個很好的閱讀 – Valerij

回答

0

嗯,有一點可以肯定的是,在混帳:

  • 你可以有幾個家長
  • 分支名稱不提交的一部份:同樣的承諾可以屬於多個分支

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