2012年8月27日月曜日

Gitの共有リポジトリを使った開発環境の作成

先週をほぼ丸々使って、かなりイカした開発環境を作ることができた。

ざっと要約すると、
  • 開発環境から本番へのアップロードには現状のSVNを使ったまま、
  • 開発環境内のバージョン管理のみGitを使い、
  • 複数の開発者が同時に開発でき、
  • 一台の開発サーバで別々のテスト環境をもてる
という、ちょっとこれは凄いんじゃないかと個人的には自負している。

前回の記事で、開発者ごとに同一の開発サーバで別々のドキュメントルートを使えるようにするやり方を書いたので、今回はその続き。

元々のソースファイルなどは
/web/game
に存在しているので、まずはその内容をGitの共有リポジトリに登録する必要がある。

どちらにしてもリポジトリを作らないことには話にならないので、
/varにgit_reposというディレクトリを作り、そこで
git --bare game.git
とコマンドを叩いてやる。

次にこのリポジトリのクローンを作る。
git clone /var/git_repos/game.git /web/new_game
「空のリポジトリだよー」とワーニングのメッセージが出るのだけど、華麗にスルー。

次に/web/game/の中身を/web/new_game/にごそっとコピー。

きちんとGitで管理できているのかどうか、new_gameに移動して
git status
コマンドを打ってみると、ごっそりとGitに未登録のファイルが出てきた。

ここで
git add --all
としてやればまずはGitのステージに登録できるのだけど、statusの一覧を見てみると、大量の.svnファイルが含まれている。

開発環境から本番にアップするのにはSVNを使うので.svnファイル自体は必要なのだけど、Gitには登録したくない。

というわけで、.gitignoreファイルを作成し、.svnを無視リストに加える。

その後、おもむろに
git add --all
git commit -m 'add new file'
としてGitに登録。

そして、
git push origin master
として、共有リポジトリに追加する。

次に/web/game_tadasukeとうディレクトリを作成する。

そんでもって
git clone /var/git_repos/game.git /web/game_tadasuke
として、共有リポジトリからソースファイルを落としてくる。

後は前回の記事のようにユーザによってドキュメントルートを
/web/game
or
/web/game_tadasuke
に切り替えてやれば、ユーザごとに別々の開発環境ができてテストまでできちゃうようになる。

うーん、素晴らしい。

まだ運用を開始して日が経っていないので、後は実際に使いながら細かく修正していく感じですな。

0 件のコメント:

コメントを投稿