EC studio EC studio 技術ブログ

2007年10月22日投稿者:山本 正喜

SubVersionでチーム開発を加速させる – 基礎知識編

チーム開発を成功させるカギは、
「いかに作業データをスムーズに共有するか?」
だと思います。

少人数で小さい規模のシステムであれば、
メッセンジャーなどでファイルを受け渡したり、
共有フォルダなどを作ってもなんとかなると思いますが、
ある程度のラインを越えると途端に苦しくなってきます。

「このファイル最新持ってるの誰?」
「ここなんで修正したの?誰?」→「さぁ、、、」

なんて会話が飛び交うようになります。
そこで登場するのがバージョン管理システムです。

バージョン管理システム SubVersion

バージョン管理システムとは、

主にプログラムの開発において、ソースコードやその他のデータを管理するために用いられるシステムのこと。
(from Wikipedia)

です。

関連するドキュメントを見るとのっけから
専門用語のオンパレードですが、できることは単純です。

「誰が」
「いつ」
「何を」
「どうしたか」

をすべて記録にとり、どの履歴にも戻したり
比較することができるようになります。

代表的な機能として

・現在のソースを最新版と同期させる
(ローカルで変更があった場合はマージします)
・過去の履歴と現在のソースを比較
・過去のバージョンに戻す
・過去の変更履歴をファイルごとに見る

などを行うことができます。

バージョン管理システムには主にCVSとSubVersion
がありますが、SubVersionの方が機能的に優れているので、
既存のシステムがCVSなどの場合以外は、SubVersionを
採用されることをオススメします。

ソースコードだけではなく、画像ファイルや
オフィスのファイルなどなんでも管理できるので、
プログラマーだけでなくチーム作業をする
すべての人にお勧めです!
(特にHTMLなどのテキストを多く編集する方に)

実際、EC studioではプログラマーのソースコードは
もちろん、各種サイトのHTMLデータ、
サポートスタッフのテンプレートまでSubVersionで
管理しています。(社長ブログ参照)

SubVersionの仕組み

動作原理としてはとても単純で、
FTPサーバーをイメージしてもらうといいです。

Subversionサーバーとクライアントの関係

この様に、共通のサーバーにファイルをコミット(アップロード)、
アップデート(ダウンロード)することで同期を実現します。

※コミットはFTPのアップロード、アップデートは
FTPのダウンロードの操作に相当します。

■FTPとの違い

コミットアップロードの違い:

コミットはファイルをサーバーに置く
というよりは、記録するというイメージ。
一度コミットされたデータは記録され、
今後どう変更されようが元に戻すことができます。

アップデートダウンロードの違い:

アップデートはダウンロードしてファイルを
落としてくるというよりは、差分だけを
とってくるイメージ。

前回アップデートした時から更新された分だけどの
ファイルが取得でき、ローカルで変更があった場合は
ソースコードがマージ(結合)されます。

※例
Aさんが3行目~5行目を編集してコミット。
自分がローカルで10行目~12行目を編集していた場合、
アップデートすると両方の結果がマージされる。

TortoiseSVNで試してみよう

説明だけ聞いてもイメージがわかないと思うので、
さわってみることをオススメします。

Windowsの場合は、TortoiseSVNというソフトが
非常に良くできていますので、このソフトで
SubVersionを使ってみましょう。
(TortoiseSVNはFTPでいうFTPソフトみたいなものです)

※ちなみにトータスエスブイエヌと読みます

TortoiseSVNにはクライアント機能だけではなく、
リポジトリ(SubVersionのデータ記録用データベース)の
作成機能もついているので、一人で試す分には
サーバーを立てずに使用できます。

TortoiseSVNはここからダウンロードできます。

次回は、TortoiseSVNの使い方について
実際に例を交えながら解説していきたいと思います。

次回記事:SubVersionでチーム開発を加速する2 – 実践編


関連した記事:
投稿者
人気のエントリー
カテゴリー
最近のエントリー
アーカイブ
Copyright© ChatWork, All Rights Reserved. secured by ESET.