ソフトの開発をしているところなら別に珍しい話ではないけれど、チームでも個人でもなんらかのソース管理を行っているハズ。
でも、これがファイルサーバーで共有されているだけとか、ソース内のコメントだけが修正履歴とかになっていると、確実な作業は望めないし、開発以外に労力を割かなければならなくなる。
日付程度では、ソースの新旧が信用できない。(誤って保存したら、それが最新になるのは誰でも判る)
複数ファイルに渡る修正や、他人の修正と被っていないかどうか(これは、作業が分担されていればあまり無いとは思うが)などは管理が難しい。
作業中のバージョン管理などはできないに等しい。
ソース管理システムを導入すると面倒になるという人間もいるが、導入しなくても管理負荷は増える。
どうせ、負荷が増えるのなら何らかのソース管理システムを導入してチェックイン/チェックアウトをきちんと行うようにする方が遥かにメリットが大きい。
UNIX系ではCVSが良く使われていたし、WindowsではCVS系のビジュアルソースセーフが使えていたので、予算があって準備もできているところは普通にソース管理/バージョン管理システムを使っている事と思う。
しかし、予算も何も無いところでは、フリーソフトなどを最大限活用し、環境を整え、さらにソース管理のメリットを啓蒙していかなければならない。
まあ、特に難しい事ではないが、最初のステップとしてWindowsでSubversionを使う事を考えてみる。
いろんなところで紹介されているし、バージョンも大分進んだので、今更詳しく書くことは無いけれど、一応まとめておく。
Windows用のSubversionサーバーを動作させても良いが、コマンドラインで使うとなると、また抵抗があるので、GUIで操作できるTortoiseSVNを入門用として導入する。
これなら、サーバーを用意しなくてもローカルにリポジトリを作って、試しに動作させてみる事もできる。
日本語対応もされているので、基本的な使い方を覚えるにはちょうど良い。リポジトリの概念とチェックイン/アウトさえ出来ればOK。
まずは、TortoiseSVNのプロジェクトページからWindowsインストーラ形式のパッケージと日本語のLanguage packをダウンロードする。
後はインストーラを起動して順に進めて行くだけ。
ライセンスに同意して
インストール内容を選択。まあ、まずはデフォルトで。
確認画面でインストールを選択。
インストール終了まで待つ。
終了画面でFinishを押して終了
再起動を求められるので、良ければYesで再起動
再起動してから適当なファイルを選択して右クリックでメニューを出すとTortoiseSVNが追加されている。
続いて日本語のLanguage packをインストールする。
終了を待って
完了を確認。
適当なファイルを選択して右クリックでメニューを出し、TortoiseSVNのSettingsを選択する。
General項目からLanguageのドロップダウンリストを操作し日本語を選択する。
メニューを閉じて、再度表示するとメニューが日本語化されている。
TortoiseSVNには標準の比較・マージツールが付いているので、そのままでも使用できるが、好みでマージツールをWinMergeに変更できる。
個人的にはWinMergeの方が表示が好みなのとプラグインで比較対象の種類を増やせる事からWinMergeを導入して使っている。
これもWindows用のセットアップが用意されているので導入は簡単。
WinMergeのプロジェクトページからWindowsインストーラ形式のパッケージをダウンロードして実行。
ライセンスを確認
インストール先を指定
日本語対応のパッケージなら言語はデフォルトで日本語にチェックが入っている。プラグインは必要に応じてインストール。
特に個別にセットアップしたいプラグインがあれば、ここではチェックしないのも手。標準で様子をみたい場合は、チェックしておく。
デフォルトでチェックが入っているが、エクスプローラのコンテキストメニューへの追加とTortoiseSVNでの使用を選択する。
内容を確認してインストールを実行。
これでTortoiseSVNの差分表示にWinMergeが使われる。
ローカルにインストールが済んだら、リポジトリを作成して適当なソースを取り込んでみる。
適当なリポジトリ用ディレクトリを作成し、何もないところで右クリックしてメニューから「ここにリポジトリを作成」を選択する。
必要なフォルダが作成されるので、次に管理したいファイルを全てインポートする。面倒ならフォルダごとインポートもできる。
今度は作業用フォルダを作成し、そこで右クリックメニューからSVNチェックアウトを選択する。
チェックアウトされた作業用ファイルには、変更があったかどうかのマークが付く。
チェックアウトしたソースを編集して、何も無いところで右クリックメニューからSVNコミットを実行する。
登録対象となる編集ファイルが一覧されるので、コメントをつけて登録を実行する。
コミットとチェックアウトを何度か繰り返すと変更ごとの差分などが簡単に確認できる事が判る。
複数人で作業している場合は、他の人間のコミット内容を自分の作業用ソースに取り込む為、SVN更新を実行してから作業を行う。
修正履歴が残って便利とは言っても、なんでも適当に登録していたのでは折角のバージョン管理システムが本領を発揮できない。
ある程度のルールを決めておく必要がある。
機能や修正の単位を単純化し、なるだけ単独の修正部分ごとに登録する。
作業途中で登録する場合も複数の作業を平行して行う為の途中登録ではなく、1個の作業の中断に留める。
要は、作業を取り消したい場合や派生などを行う場合に分けやすい形で登録を行うという事。