最近、gitサーバーのセットアップ方法について読んでいて、特定のデーモンがまったく必要ないことがわかったとき(背後にファイルシステムがあるSSHサーバーだけ)、gitがファイルを管理する方法についてもっと調べ始めましたフード。
各コミットが .objects フォルダー内でどのように表現されるか、およびすべてがどのように組み合わされるかという戦略は非常に巧妙ですが、このアプローチにより実際に git が非常に単純な方法で並行性を達成できるようになることは明示的に言及されていないようです。シグナリング サーバー。
それにもかかわらず、並行性が保証されない状況があります。これは、基本的に履歴が書き換えられる場合 (強制プッシュ) です。この場合、並行性の問題を回避するためにツリーで使用されるロック戦略はありますか? このトピックに関するドキュメントは他にありますか?
(この SO answerでこのトピックについて何かが述べられていますが、非常に簡単です。)