私は現在、単純なNode.js
ベースの改訂システムをコーディングしています。ただcommit
、何も派手brunch
でrevert
はなく、スキルを形に保つための練習です。私は次の単純なシェマでデータバックエンドとしてsqliteを使用しています:
commitid int
parentid int
branch text
diff blob
ブランチを切り替えるときは、すべてのコミットをトラバースし、diffを相互に適用する必要があります。これは、10回のコミットでは問題なく機能する可能性がありますが、1000回の場合は確かに時間がかかります。数秒以内にブランチを切り替えたり、ブランチを切り替えHg
たりする他のシステム、および(実際の質問)100コミットごとのような何らかのキャッシュを保持するのか、それとも他にどのように処理されるのでしょうか。git