バージョン管理ソフト Subversion 導入

CVS(Concurrent Versions System)とは、プログラム開発、とりわけ複数人による開発のバージョン管理に用いられるソフトウェアで、私の会社でも使っているソフトウェアだが、少し変わった使い方を思いついたので、使ってみたくなった。

すなわち、一般的な「テキストファイル」「画像データ」「音楽データ」も扱えるなら、
・Webサイトのバージョン管理
・おとボクTCG(仮)プロジェクトのバージョン管理
・その他、手元のSS、CGなんかのバージョン管理
・バージョン管理に伴うデータバックアップ
にも適用できるであろうという発想がある。

なんでこの発想にたどり着いたかと言えば、手元のファイルの管理がまともに出来ていない、という問題があるため。とくにおとボクTCGについて、クローズドα版すら出来ていないのに、すでにバージョン管理で混乱している状況。

んで、目標とする設定は以下。

[クライアント、および、サーバ]:デスクトップPC(¥¥newrecord)
[作業フォルダ]:マイドキュメント直下
[リポジトリ]:LinkStation(¥¥Timeattack)

# ちなみに、ノートPCがEvilWhisper、ルータがBusyOrder。
# KanonTCGプレイヤーであれば意味を分かってくれるかもw

ここでのポイントは、作業フォルダとリポジトリのあるファイルが「別の装置であること」。
「妄想ですよ!妄想!」レベルで本音を言えば、外部SANストレージにてRAID構築されてる、二重化されたサーバを用意して、そこにデータを置きたいが、この構成はざっくり見積もって一千万円近くする。そんなにお金の掛かるシステムは、「まさに妄想」。
というわけで、リポジトリの破損も考慮する必要は厳然として存在するが、編集前に旧バージョンのバックアップ用チェックアウトを忘れないという人的バックアップに頼ることとする。

/* 1. WinCVS ver.2.0 ——————————— */
会社で使っていることもあって本命視していたが、結論から言えば失敗に終わった。

理由は次の通り。
・通常のオプションでは、CVSはUNCパスを認識できない
リポジトリの作成からログイン、チェックアウト、インポートまで、あらゆる操作において、下記のメッセージ(引用はログインの場合。一番深刻なのはインポートの場合)が発生する。

cvs -r -d ¥¥Timeattack¥share¥Project login
cvs [login aborted]: Local access to network share not supported (Use -N to override this error).

要するに、「-Nオプションをつけろ。そうじゃないとNASを認識してあげないよ」と言われている。
調べてみた結果、上記「-d」オプションを、「-Nd」オプションに書き換える必要があることが判明した。

・WinCVS ver.2は-Nオプションをサポートしていない(ように見える)
 んで、「Admin→Preferences」のメニューにはそれっぽいオプションがなかったので、「Admin→Command Line」メニューを探索してみたところ、このメニューから出来そうな予感がした。

 確かに、一つ一つのコマンドで「-Nd」指定はできる。
 ……が。
 このオプションを、他の作業に紐付けできないのだ。「cvs -r -d ¥¥Timeattack¥share¥Project -Nd」などと、へんてこな指定になってしまう。

 この問題について、ガチのCVSサーバを用意していれば問題なかったと思われるが、そんなスペースもカネもない。

/* 2. WinCVS ver1.2 ごった煮版 ————————- */
というわけで、webを探していたら、ver.1.2を紹介された。
が……。
サポートページが閉鎖してやがる orz

というわけで、CVSを使うのはあきらめることに。

/* 3. Subversion 1.4.5 + tortoiseSVN 1.4.5 ————————- */
Wikipediaによると、Subversionという、CVSを強化したものがあるらしい。
というわけで早速インストール。Pythonのインストールを忘れると動かないので注意(私は2.5.1を導入した)。
Gentoo SideTortoiseSVNのインストールと設定」および「TortoiseSVNの使い方」が詳しい。

とりあえず使ってみて、webサイトの更新をしてみた。
かなり良い感じなので、引き続き使ってみたい。

[2008/1/13 14:58追記]
SVNを利用するにあたって、上記の使い方の場合はTortoiseSVNだけでいいっぽいです。
SubversionやPythonは、サーバーを立てる場合の設定とか便利マクロとか、そんな類の様子(検証する気ありませんが)。

タグ: ,