CVS入門

CVS の機能は多すぎて覚えられない、いちいちマニュアルを引くのが 面倒、という特徴があるので、とりあえず自分の使い方に合わせた 覚書。

Contents

CVS基礎知識

CVS によるバージョン管理にはいろんな概念が導入されていて、どうも それが話をややこしくしている。やったことはないけど、CVS では かなり大きなプロジェクトを管理できる(Linux も昔は CVS を使って いたと思う)ように作られているのに、たったひとつのテキストファイルを 管理したい私のような人が戸惑いを覚えるのも、まあ、当然と思う。

なので、個人用の小さなウェブサイトや、ちまちました Python のプログラムを 管理する程度の人からの目線で解説する。

リポジトリ

日本語なら貯蔵庫ということ。全ての情報が収められるディレクトリ。 CVSROOT などの環境変数で指定されることもある。 通常は以下のコマンドで作成する。

リポジトリ作成:cvs -d <CVSROOT> init
リポジトリ削除:rm -rf <CVSROOT>

モジュール

モジュールは、プロジェクトとも呼ばれているが、要するに CVS で管理する プロジェクトというか、ソフトウェア全体というか、一個のまとまった仕事の 単位というのか、まあそういった感じ。モジュールは、あるディレクトリ配下の 全体を指していて、そのディレクトリ名はモジュール名と同じになる。

このimportコマンドは、どのディレクトリで実行しても良いのだけれど、 そのディレクトリおよび配下のファイル全てを登録しようとするので、 空のディレクトリで実行すればよい。

モジュール登録:cvs -d <CVSROOT> import <モジュール名> <vendor-tag> <release-tag>
モジュール読み出し:cvs -d <CVSROOT> checkout <モジュール名>
モジュール削除:rm -rf <CVSROOT>/<モジュール名>

<vendor-tag> は、多分作った人の名前でいいと思う。 <release-tag> は、後でどっかの時点のスナップショットを取り出したりするので、 まあ、一応、ちゃんと名前を考えておいた方がいいかも。'Ver20060802'とかにすると、 なんとなく、いいたいことがあとでわかるかも。

ファイルの追加

追加:cvs add <ファイル名>
追加(バイナリファイル):cvs add -kb <ファイル名>

タグ

バージョンはファイルごとに管理される。モジュール全体のバージョンに あたるものはタグ(だと思う)。タグをうつと全てのファイルに現時点での バージョンに指定したタグ名を割り当ててくれる。-R は recursive、-d が 削除のオプション。

タグ割当:cvs tag -R <タグ名>
タグ削除:cvs tag -dR <タグ名>

ログ

どんなタグがあるのか見るときはこれ。

履歴表示:cvs log