0

私は現在、単純なNode.jsベースの改訂システムをコーディングしています。ただcommit、何も派手brunchrevertはなく、スキルを形に保つための練習です。私は次の単純なシェマでデータバックエンドとしてsqliteを使用しています:

commitid int
parentid int
branch text
diff blob

ブランチを切り替えるときは、すべてのコミットをトラバースし、diffを相互に適用する必要があります。これは、10回のコミットでは問題なく機能する可能性がありますが、1000回の場合は確かに時間がかかります。数秒以内にブランチを切り替えたり、ブランチを切り替えHgたりする他のシステム、および(実際の質問)100コミットごとのような何らかのキャッシュを保持するのか、それとも他にどのように処理されるのでしょうか。git

4

1 に答える 1

0

まあ、確かなことの1つは、gitで:

  • あなたはいくつかの親を持つことができます
  • ブランチ名はコミットの一部ではありません:同じコミットが複数のブランチに属することができます

また、gitのblobはdiffではなく、完全なファイルです。しかし、私が知る限り、hgは差分を保持します。

于 2012-09-20T12:58:49.140 に答える