27

Web アプリケーションはカスタム ビルドの CMS で、いくつかのサブアプリケーションがあり、それぞれのサブアプリケーションには同じディレクトリ構造に存在するコードとコンテンツがあります。アプリケーション フレームワークのアーキテクチャにより、コードとコンテンツは絡み合っており (コンテンツの表示やその他の機能はコードに依存します)、切り離すことはできません。コンテンツは BLOB として保存されるのではなく、ファイルとして保存され、基礎となる DB を使用してそれらをリンクします。サブアプリケーションのサイズは 20GB ~ 250GB 以上です (これがキラーです)。

Web アプリケーションは、コードのいくつかの機能強化 (新しいサブアプリケーション、バグ修正など) のために使用され、同時に、ユーザーは既に稼働中のシステムを介してコンテンツを追加/更新します。したがって、展開/リリース プロセスが必要であり、最も重要なこととして、コードとコンテンツの両方に対してバージョン管理システムを提案する必要があります。

Git が登場するのには理由があります。オープンソースで無料、分岐とマージが簡単、集中管理されていないため、単一障害点がありません。

しかし、Web での最初の調査の後、私たちのアプリケーションに適用できるいくつかの残念な事実を発見しました。私たちのような大規模システムに Git を使用するのは苦痛 (チェックアウト、クローン、マージ、プッシュ、プル) であり、コマンドは複雑です (「こっけいな」)。 DVCS に詳しくなく、ほとんどが Windows ユーザーである開発者ベースには、より適切です。

Git には決まった考え方はありませんが、集中型のアプローチを採用する必要がある場合 (最悪の場合)、どうすればよいでしょうか (CVS と SVN は別として)。Perforce が安定したものであり、Google でも使用されていることを読みました (ここでいくつかの乱暴なことを期待しています!!)。

あなたの見解を共有し、導き、コメントしてください。私は本当にそれらを必要とします。

4

7 に答える 7

26

たまたまこのブログ記事を読んだのは 1 分前ではありません。これは、git のスケーラビリティについてのちょっとした不満です。

編集: 8 年後、Git にはLarge File Storage (LFS) があり、Microsoft はGit Virtual File System (GVFS) をオープンソース化して、git を使用して Windows を開発できるようにしています。

于 2009-06-16T06:12:12.763 に答える
16

まず、Git が技術者以外のユーザーには不適切であることに同意しません。はい、初心者が使用しない特定の機能があります (例: git-send-email)。しかし、 TortoiseGitのような単純なことを単純にするための GUI もあります。

しかし、あなたは間違った方法で物事に取り組んでいると思います。基本的に、頻繁に変更され、Joe Bloggs が非常に簡単に編集できるようにする必要があるコンテンツと、コーダーがあまり頻繁に変更しないコードがあります。従来のソリューションは、実際の CMS ( AlfrescoSugarCRMDrupalなど) または Wiki ( MediaWikiMoinMonなど) をオプションのプラグインと共に使用することです。Wiki (およびほとんどの CMS) では、コンテンツを「ユーザーフレンドリー」な方法で。

社内コードを保持しなければならない場合でも、コンテンツを分離して個別に処理できるようにする必要があると思います。コードとコンテンツを分離すると、リポジトリはより適切なサイズになります。次に、必要な任意の VCS を使用できます (ただし、Git は本質的に大規模なリポジトリには適していないという意見が正しいかどうかはわかりません)。

于 2009-06-16T05:54:40.407 に答える
10

git は大規模なリポジトリには対応していません。スペースではなく、ファイルの数です。これについては、以前書いた私のブログ記事をお読みください。

私の経験では、スケーラブルで高速な集中ソース管理システムが必要な場合は、P4が最適です。

于 2009-06-17T21:37:27.223 に答える
8

SVN は本当に悪い選択肢なのでしょうか?

長所:

  • 大規模なリポジトリを処理できます。たとえば、多くの Linux ディストリビューションで使用されています。また、Apache、Sourceforge も使用できます。
  • Windows ユーザーを満足させるために、TortoiseSVN を備えた素敵な GUI フロント エンドがあります。
  • Windows 統合認証と併用して、管理者を満足させることができます
  • 要件 (svnadmin hotcopy または dump、svnsync、post-commit フック) に基づいて、さまざまなバックアップ戦略を採用して、単一障害点の懸念を緩和することができます。

短所:

  • 一元化された VCS

免責事項: 私は Perforce を使用したことがなく、SVN の管理者およびユーザーとして 6 年間 (v0.29 から) 満足しています。

于 2009-06-16T06:47:09.883 に答える
4

gitリポジトリをより効率的にするために切り刻むgit-splitと呼ばれるユーティリティスクリプトがあります。

于 2009-11-19T17:03:28.210 に答える
-2

学校のプロジェクト (Zend Framework を使用した php サイト) で一度だけ git を使用しました。

私たちは git を使用しましたが、教師は最終リリースを svn リポジトリに置く必要がありました。

チェックアウト サイズの比較:

git checkout は svn checkout の半分の MB サイズでした。

私の2セント。

于 2009-06-16T05:51:06.573 に答える