Web アプリケーションはカスタム ビルドの CMS で、いくつかのサブアプリケーションがあり、それぞれのサブアプリケーションには同じディレクトリ構造に存在するコードとコンテンツがあります。アプリケーション フレームワークのアーキテクチャにより、コードとコンテンツは絡み合っており (コンテンツの表示やその他の機能はコードに依存します)、切り離すことはできません。コンテンツは BLOB として保存されるのではなく、ファイルとして保存され、基礎となる DB を使用してそれらをリンクします。サブアプリケーションのサイズは 20GB ~ 250GB 以上です (これがキラーです)。
Web アプリケーションは、コードのいくつかの機能強化 (新しいサブアプリケーション、バグ修正など) のために使用され、同時に、ユーザーは既に稼働中のシステムを介してコンテンツを追加/更新します。したがって、展開/リリース プロセスが必要であり、最も重要なこととして、コードとコンテンツの両方に対してバージョン管理システムを提案する必要があります。
Git が登場するのには理由があります。オープンソースで無料、分岐とマージが簡単、集中管理されていないため、単一障害点がありません。
しかし、Web での最初の調査の後、私たちのアプリケーションに適用できるいくつかの残念な事実を発見しました。私たちのような大規模システムに Git を使用するのは苦痛 (チェックアウト、クローン、マージ、プッシュ、プル) であり、コマンドは複雑です (「こっけいな」)。 DVCS に詳しくなく、ほとんどが Windows ユーザーである開発者ベースには、より適切です。
Git には決まった考え方はありませんが、集中型のアプローチを採用する必要がある場合 (最悪の場合)、どうすればよいでしょうか (CVS と SVN は別として)。Perforce が安定したものであり、Google でも使用されていることを読みました (ここでいくつかの乱暴なことを期待しています!!)。
あなたの見解を共有し、導き、コメントしてください。私は本当にそれらを必要とします。