- ベストアンサー
WEB制作におけるバージョン管理の導入とは?
- WEBサーバー引越しにあたり、バージョン管理システム導入を検討しています。バージョン管理自体未経験なのですが、WEB制作にフィットした内容が見当たりませんでした。
- 現在の制作スタイルでは、複数人での作業の場合やリモートのサーバーに依存しないシステムに課題を感じています。そのため、subversionやgitなどのバージョン管理システムを導入し、テスト環境で修正・デバッグ・プレビューを行い、変更ファイルのみを本サーバーに更新したいと考えています。
- また、複数人で共有するためには、ローカル側のファイルにネットワーク経由でアクセスする方法が必要です。具体的なリポジトリの使い方やロールバックの共有方法はまだ分かっていませんが、SVNサーバーを本サーバーとし、テストサーバーと各ローカルPCをSVNクライアントにするイメージがあります。実現可能かどうかはわかりませんが、バージョン管理の導入を検討しています。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
> WEB制作の場合、動作確認を行うにはApacheが必要になると思います。 > 各開発者ごとに作業コピーをローカルに取得するということは、各開発者のPCごとにApacheを導入して、かつ同じ設定をして、動作確認をとるのでしょうか。 各自のローカルに apache なりWEBサーバを立てることもあります。 そうでない場合は、別途動作確認用の開発サーバとしてそこにUPする場合もあります。 > ちょっとそれは考えにくかったので、ローカル(複数の開発者が同じローカルネットワークにいるという前提)では、1つのローカルサーバーにあるデータに集中してアクセスできる仕様であれば、Apacheを共有できて楽なのかなと思い、「ローカル側のファイルは複数人で共有したい。同期ではなく、ネットワーク上の同じファイルにアクセスしたい。」という質問になりました。 それはバージョン管理は関係なくて、ただのファイル共有ではないでしょうか? うーんと、SVNの場合はチェックアウトしたユーザでコミットします。 (環境変数を使えば切り替えることができるかもしれませんが、オペレーションミスで、 自分が修正したファイルではないものをコミットする可能性があるのでおすすめしません。) おっしゃるように、共有フォルダにチェックアウトしたソースをみんなで修正すると言うことは、暗黙的に同じSVNアカウントでのコミットする思うので、それではソースを誰が更新したか分からなくなるため、構成管理としてはナンセンスな感じがします。
その他の回答 (1)
- NARH
- ベストアンサー率82% (88/107)
Subversion を使っているので、Subversion( 以下 SVN )の場合でお答えします。 > 本サーバーをSVNサーバーとして、テストサーバー、各ローカルPCをSVNクライアントにする、というイメージを持っているのですが、実際のところは可能なのでしょうか。 本サーバもテストサーバもローカルも、全てSVNから見た場合はクライアントになります。 SVNサーバはリポジトリ(作業履歴のコンテナ)でしかありません。 > ・直に本サーバーのファイルを変更するのではなく、サブドメインなどのテスト環境で修正、デバッグ、プレビューを行ない、最終的に本サーバーへ反映したい。 可能です > ・本サーバーとテスト環境で、変更ファイルだけを更新できるシステムにしたい。できれば、手動ではなく自動認識させたい。 可能です > ・ローカル側のファイルは複数人で共有したい。同期ではなく、ネットワーク上の同じファイルにアクセスしたい。リポジトリの概念が分かっていません。ロールバックを共有できるのかという意味になるのかもしれません。 僕の現場では複数の開発者が、リポジトリより最新の作業コピーをローカルに取得し、開発作業を行ないます。 ローカルで動作確認を取れたものはリポジトリにコミットします。 コミットはいつでもできますが、動作したものをコミットするというルールにしています。 開発サーバでも作業コピーを取得しておき、DocumentRootに設定しています。 定期的に、リポジトリの修正分を取り込むように cron にシェルを登録しています。 リリース管理をチーム内(客先を含む)で決めておき、開発サーバでの試験がOKでしたら、 その時点での作業コピーに名前をつけます。( trunk -> tags ) 本番サーバでは、先に名前をつけたものをリポジトリから取得するようにしています。 SVNでは作業コピー内に .svn ディレクトリが作成されますが、ここから外部にリポジトリ情報が漏れることがないように、チェックアウトした作業コピーではなくエクスポートしたものを使うようにしています。
お礼
貴重な情報をありがとうざいました。 大変参考になりました。 3つめの項目についてなんですが、 > 複数の開発者が、リポジトリより最新の作業コピーをローカルに取得し、 > 開発作業を行ないます。 WEB制作の場合、動作確認を行うにはApacheが必要になると思います。 各開発者ごとに作業コピーをローカルに取得するということは、各開発者のPCごとにApacheを導入して、かつ同じ設定をして、動作確認をとるのでしょうか。 ちょっとそれは考えにくかったので、ローカル(複数の開発者が同じローカルネットワークにいるという前提)では、1つのローカルサーバーにあるデータに集中してアクセスできる仕様であれば、Apacheを共有できて楽なのかなと思い、「ローカル側のファイルは複数人で共有したい。同期ではなく、ネットワーク上の同じファイルにアクセスしたい。」という質問になりました。
お礼
> それはバージョン管理は関係なくて、 > ただのファイル共有ではないでしょうか? そうですね。質問したかったのは、ファイル共有とバージョン管理を同時に効率よく行えるかということだったかもしれません。おっしゃるように、人によってturnkやburnchの切り方が異なるでしょうから、複数人が同じSVNアカウントで管理するのは無理がありそうですね。 > 別途動作確認用の開発サーバとしてそこにUPする場合もあります。 こちらの線でもう少し調べてみます。 お付き合いいただきありがとうございました。 大変参考になりました。