11

Git の背後にあるデータ構造を想像してみてください。これは、従来のポインターの代わりにハッシュ参照を使用することを除いて、コンフルーエントに永続的なデータ構造に似ています。

作業ツリーとインデックスのものがない場合を除いて、Git のデータ構造が必要です。そして、何百万ものブランチが存在し、それぞれが少数の他のローカル ブランチを追跡します。コミットとマージは、異なるスレッドで毎分数千回発生します。プルは毎秒発生します。

libgit2jgitの間で、 Git のデータ ストレージ サブシステムを使用できます。

しかし、仕事に適したツールを使用していますか? git の機能を備えた DB はありますか? メモリにキャッシュされた書き込みは非常に役立ちます。

タスク:

共同編集ゲーム。各プレイヤーには独自のブランチがあり、ゲームの世界に加えるすべての変更はそのバージョンにのみ適用されます。変更は、信頼できるユーザーによって「マスター」ブランチにマージされます。多くの場合、データとソース コードは結び付けられており、同じ分岐およびマージ機能が必要です。

4

4 に答える 4

3

Datomicは、永続的なデータ ストレージと組み込みの時間概念を提供します。

コア開発者は、git リポジトリをデータベースに実装するサンプルアプリケーションも作成しました。

于 2013-10-04T02:12:50.823 に答える
1

git のインデックス/作業コピー部分は簡単に分離できますが、git は単一のマシンで 1 秒あたり数千の速度でマージまたはコミットするようには設計されていません。ほとんどの場合、コア コードはスレッドセーフでさえありません。データ用に新しいシステムを作成する必要がある可能性があります (もちろん、コードに git を引き続き使用できます。また、必要に応じて、データを表す git コミットの生成を検討することもできます)。

于 2011-08-22T19:14:18.167 に答える
1

プロジェクト間およびプロジェクト間のコラボレーションに関して、github がどのように機能するかを見てみましょう。鍵となるのは、多くのユーザーが他のユーザーのファイル コンテンツをコピー、使用、複製することを選択して、github コア リポジトリが集約を実行できるようにすることです。

その再利用がない場合、git の哲学はおそらくあなたのニーズに合わないでしょう。課題は、インピーダンス マッチング ポイントを特定し、それを一生懸命推進することです。多くの人々は、git が機能し、「通常の」VCS が機能しない理由を本当に理解していません (つまり、そもそも古いスタイルの VCS が機能したのはなぜですか? - RMS タイタニックのカオリンとリネンの図面の手がかり)。git が機能するのは、最新のコンピューター機能から始まるからです。

于 2011-08-22T19:18:43.173 に答える