私の会社では、ビジネス Web サイト (すべて PHP で記述されていますが、それは問題ではありません) の Web 開発者のグループが 8 人います。グループの全員が同時にさまざまなプロジェクトに取り組んでおり、タスクが完了するとすぐに展開します (最近ビジネスが急速に進んでいるため)。
現在、開発は 1 つの共有サーバー上で行われ、すべての開発者が同じコード ベースで作業しています (RCS を使用してファイルを他のユーザーから「ロック」しています)。展開の期限が来ると、変更されたファイルが「ステージング」サーバーにコピーされ、同期スクリプトがファイルをメインの Web サーバーにアップロードし、そこから他の 9 つのサーバーに配布します。
幸いなことに、Web 開発チームはプロセスを改善するために私たちに助けを求めてきました (私たちがしばらく文句を言った後)。
- 誰もが独自のコードベースを持つことができるように、仮想ディレクトリを備えた開発サーバー
- 変更を追跡するための SVN (またはその他の VCS)
- 最新のチェックイン コードを保持するテスト用の中央サーバー
問題は、他のプロジェクトからバグを誤ってアップロードすることなく、変更されたファイルをサーバーにデプロイするにはどうすればよいかということです。私の最初のアイデアは、リポジトリから最新のリビジョンを単純にエクスポートすることでしたが、それではファイルを完全に制御することはできませんでした。
このような状況をどのように管理していますか?どのような種類の展開スクリプトが実行されていますか?
(特別な課題として: Web サイトは過去 10 年間で有機的に成長したため、プロジェクトは小さなチャンクに分割されていませんが、特定の機能のファイルがディレクトリ ツリー全体に分散しています。)