2005年05月15日

TortoiseCVSを使ったデータの一元管理

PCで日常的に編集するファイルをCVSを使ってまとめてみた。CVSで一元管理することでデスクトップPCやノートPC間のデータの移し変えの手間がなくなる。TortoiseCVSというWindows用CVSクライアントを使うと、作業がずいぶんと楽になる。その方法を紹介する。
CVSを利用しているためバージョン管理機能を使って誤って削除したデータを取り出せるという利点がある一方、ファイルやディレクトリの追加・削除・名前変更に特別な操作が必要になるという欠点もある。CVSをある程度理解している人にお勧めしたい方法である。

デスクトップPCやノートPCなど複数のPCを使っていると、自分が編集したデータをまとめておくのが結構大変だ。そこで、CVSというコンテンツのバージョン管理システムを活用したデータ管理法に挑戦してみた。CVSはプログラムのソースコード管理に広く用いられているシステムであるが、それを個人用のデータフォルダに適用してみる。

CVSはマスタとなるデータやそのバージョン情報を保持するレポジトリと作業用コピーを別々に管理する。そしてレポジトリと作業用コピーの間で更新情報を交換する仕組みを提供する。レポジトリは一つだけだが、作業用コピーはいくつあっても良い。そこで適当なサーバにレポジトリを置き、複数のPCにはその作業用コピーを置き、データの参照と更新を行うことにした。複数のPC間でデータを移し変えるという面倒な作業を、自分でやる代わりに、レポジトリを介してCVSにやってもらおうというわけだ。

CVSの作業用コピーを操作するWindows用ソフトウェアとしてお勧めしたいのが、TortoiseCVSだ。TortoiseCVSはSourceforgeの2004年12月のProject Of The Monthに輝いたソフトウェアで、エクスプローラの右クリックメニューからCVSの操作ができる優れものである。普段使っているエクスプローラをそのまま使えるのがうれしい。

■ CVSサーバ側の準備

CVSとsshが利用できるUNIX(大体デフォルトで入っている)でアカウントを持っていれば、それをCVSサーバとして利用できる。この場合に設定方法を上げるが、他にも色々なやり方がある。

・レポジトリを作成する。
ホームディレクトリにレポジトリ用フォルダを作成し、初期化。
% mkdir cvsrepos
% chmod 700 cvsrepos/
% cvs -d /home/ichi/cvsrepos/ init

・プロジェクトを作成する。
プロジェクト名をmyprojとする。
% mkdir myproj
% cd myproj/
要は空のフォルダを作って、次のコマンドを実行すればいい。
% cvs -d /home/ichi/cvsrepos/ import -m "initial import into CVS" myproj jrandom start

・レポジトリとプロジェクトの確認
ちゃんとできたか、UNIX上で確認する。レポジトリの外の適当なディレクトリで次のコマンドを実行する。
% cvs -d /home/ichi/cvsrepos/ checkout myproj

■ TortoiseCVS(Windows用CVSクライアント)側の準備

・適当なフォルダ(例えばTortoiseCVS)を作成し、そのフォルダを右クリックして、"CVS Checkout"を実行する。Moduleタブに次のような値を設定し、OKを押す。実際の値は、各自の環境に合わせて変更してほしい。
CVSROOT: :ssh:ichi@cvs.toshikazu.org:22/home/ichi/cvsrepos
Module: myproj
パスワードを尋ねる認証ダイアログを経て、作業用ファイルが作成される。
ちなみにプロジェクトが空だと、作業用ファイルは作成されない。

たまにcheckout処理が途中で止まってしまうことがある。そういう場合はひとまず手動でAbortして、プロジェクトの作業フォルダに対して"CVS Update"を実行すれば、まず問題ない。

以上で、準備は終わりである。

■ 活用方法と特徴

後は、編集前に必要であればレポジトリから最新版を取り出すために"CVS update"を、編集後に変更をレポジトリに反映するために"CVS commit"を実行する。

CVSを利用しているため
・編集時にオンラインでなくてもよく、持ち運び用ノートPCでも活用できる
・バージョン管理をしてくれるため誤って消したデータを取り出せる
といった利点もある。
一方、CVSを使ってしまっているために、
・ファイルやディレクトリの追加・削除に特別な操作が必要になる
・ファイル名やディレクトリ名の変更に特別な操作が必要になる
という難点もある。
このような一長一短を持った方法なので、CVSをある程度理解している人にお勧めしたい方法である。

以下、蛇足であるが、UNIXで作業用コピーを扱う方法である。誤ってもレポジトリを直接編集しないように。

■ UNIX用CVSクライアントの使い方

・適当なディレクトリを作成し、パーミッションを設定しておく。
% mkdir cvscheckout
% chmod 700 cvscheckout

・次のようなガイドファイルを準備しておき、それに従えばよい。
% vi MEMO
---- ここから ----
This directory is for CVS checkout.
It is temporary working directory.

Check the permission of this directory before checkout of private project.
% chmod 700 cvscheckout/

Remember to update up to a current version before starting your work.
Removing a finished working directory is encouraged.

To checkout a project,
% cvs -d /home/ichi/cvsrepos checkout

To update in working directory,
% cvs update

To show a japanese file name of windows,
ls | iconv -f sjis -t euc-jp
---- ここまで ----

Trackback on "TortoiseCVSを使ったデータの一元管理"

このエントリーのトラックバックURL: 

"TortoiseCVSを使ったデータの一元管理"へのトラックバックはまだありません。

Comment on "TortoiseCVSを使ったデータの一元管理"

"TortoiseCVSを使ったデータの一元管理"へのコメントはまだありません。

Post a Comment

コメントする

(HTMLタグは使用できません)
ブラウザに投稿者情報を登録しますか?(Cookieを使用します。次回書き込み時に便利です。)
  •  
  •