PHPプロ!TIPS+

デザイナーさんもバージョン管理

Webシステムの構築には、多くの人が携わり、その職種は様々です。

その中で、ソースコードに手を加える職種は主にデザイナー(HTMLコーダー)とプログラマ。私たちプログラマは、バージョン管理システムを使います。複数人での開発において、バージョン管理システム無しに、プロジェクトの成功は有り得ないと言っても過言では無いでしょう。

ここで紹介するバージョン管理システムは、
Subversion(http://subversion.tigris.org/)と言って、少し前に主流だったCVSの改良版です。これらは一般的にコマンドを使って操作を行いますが、デザイナーさんでも簡単に操作出来るTortoiseSVN(http://tortoisesvn.tigris.org/)というツールがあります。これはWindows上でグラフィカルに操作する事が出来、非常に便利なのでプログラマがこれを使用する事も少なくありません。

Subversionコマンド(svnコマンド)とTortoiseSVNを使った作業の流れを見ていきましょう。

0.リポジトリという概念

バージョン管理システムには「リポジトリ」という概念があり、そのリポジトリに全てのファイルやソースコードを細かくバージョン分けして保持しています。

1.まずチェックアウト

作業者は、リポジトリからプロジェクトに関わる最新のソースコードを全て取得します。これをチェックアウトと呼びます。 チェックアウトは、通常はプロジェクトにかかわる一番最初に一度だけ行います。

- コマンドでチェックアウトを行う場合

$ svn checkout https://example.com/repositoryurl

- TortoiseSVNでチェックアウトを行う場合

コマンド・チェックアウト

TortoiseSVN・チェックアウト

2.ソースコードの作成・編集

他人の作業を気にする事なく、チェックアウトしたコードの作成・編集を行います。 TortoiseSVNは、修正したファイルを判別してチェックマークを入れてくれます。

- コマンドで修正差分チェックを行う場合

$ svn status

- TortoiseSVNで修正差分

修正ファイル

3.修正した内容をリポジトリにコミット

ソースの修正が終了したら、自分の修正分をリポジトリに反映させます。これをコミットと呼びます。

コミットはアップロードの概念とはちょっと違い、修正差分だけが反映されます。つまり、他人と同じファイルを修正しても、修正した部分だけがリポジトリに反映されます。万が一他人と同じ部分を修正しても、どちらを反映させるか選択する事が可能です。この作業の衝突の事をコンフリクトと呼びます。

- コマンドでコミットを行う場合

$ svn commit file_name.php

- TortoiseSVNでコミットを行う場合

コミット

4.アップデート

複数人でリポジトリにコミットしたデータをローカルに反映させ、手元のソースを最新の状態にします。これをアップデートと呼びます。

同じソースを多人数で編集していると、このタイミングでコンフリクトが起こることがあります。

無駄なコンフリクトを防ぐためにも、常に手元のソースコードを最新のものにするために、作業を開始する際には必ずアップデートをする癖をつけておきましょう。

また、開発者がローカルにソースを反映させる時以外に、本番サーバーなどに反映させるときもアップデートを用います。

- コマンドでアップデートを行う場合

$ svn update

- TortoiseSVNでアップデートを行う場合

アップデート

このようにSubversionは覚えなくてはならない事はそう多くありません。また、Web上にはマニュアルが豊富に存在します。

上記の手順でデザイナー、プログラマ共に1つのリポジトリにコミットしながら開発を行う事で、大きく人的摩擦を大きく軽減する事が可能です。

バックナンバーについて

TIPS-MLは、毎週金曜日に更新され、新しい記事が掲載されます。

Tipsꗗy[W 

Pick Up Q&A

Q
ログファイルの中の空のデータ行を削除したい
 このエントリーをはてなブックマークに追加 
A
ログのデータ個数(列数)が固定で、空のログが"<><><>"だと既知であれば if ($line === "<><><>") { continue; } で読み飛ばしてもいいのでは? ...

>>続きを読む

まずは配列や文字列の扱いから、じっくり勉強して行きましょう。

▲解説者:岡本(アシアル株式会社 教育コーディネーター兼 システムエンジニア)