第21回 CVS 自分用まとめ

CVSの操作の書式

CVSを扱う際は、どの操作をするかCVSに示す必要がある。

$ cvs コマンド

という書式になる。
より詳しい書式については、以下で述べていく。

CVSのオプション

CVSのオプションには2つある。
「グローバルオプション」と「コマンドオプション」だ。

グローバルオプション

グローバルオプションは、CVS自身の動作に影響を与えるオプションである。

コマンドオプション

コマンドオプションは、CVSの操作(つまりコマンド特有)のオプションである。

グローバルオプションとコマンドオプションの書式

グローバルオプションは必ずコマンドの前、コマンドオプションはコマンドの後で指定。
また、これらのオプション自身が引数を取るため、書式はかなり長いものとなる。
(以下の例ではオプション自身の引数につていは長くなるため省略して記載してある)

$ cvs グローバルオプション コマンド コマンドオプション

という書式なる。

具体的な使い方

リポジトリの作成 initコマンド

CVSが変更されていくファイルを管理するディレクトリを作成する。
このディレクトリをリポジトリという。

$ cvs -d リポジトリとなるディレクトリ init

リポジトリとなるディレクトリは -d グローバルオプションで指定。
リポジトリを作成するという命令は init というコマンドで命令。

リポジトリの場所を環境変数に保存

リポジトリの場所を環境変数に覚えさせておかないと毎回 -d グローバルオプションでCVSリポジトリの場所を指定する必要がある。
これでは面倒なので、「CVSROOT」という名前の環境変数リポジトリの場所を設定する。
-dはディレクトリの略でdとなっているのに環境変数はROOTになってしまっていて
なにがなんやらという感じですが、設定しているのは共にリポジトリの場所です。

パスワードを使ったリポジトリへのアクセス

パスワードを使った方式には、pserver方式、ext方式などがある。
これらの方式を使った場合は、-dグローバルオプションに単にディレクトリを指定しただけは
ダメである。
アクセス方式をコロンで囲み、ユーザ名@サーバー名を書き、その後にまたコロンの後にディレクト
という書式になる。

$ cvs -d :アクセス方式:ユーザ名@サーバー名:ディレクトリ コマンド
ext方式

ext方式はsshを使ってサーバにアクセスできる環境で使うことができる。
CVS_RSH」環境変数sshを使うこと、
CVS_ROOT」環境変数リポジトリの位置を覚えさせておくと便利である。

$ CVS_RSH=ssh; export CVS_RSH;
$ CVS_ROOT=:ext:ユーザ名@サーバー名:ディレクトリ; export CVS_ROOT;
新規プロジェクトの開始 inportコマンド

リポジトリに管理したいプロジェクトを登録(格納)することをインポートという。

プロジェクトの一番上のディレクトリで
$ cvs import
プロジェクトの新規取得 checkoutコマンド

はじめてリポジトリからプロジェクトを取得するときは
checkoutコマンドを使う。

$ cvs checkout プロジェクト名
リポジトリへの他人の変更を自分の作業コピーに反映 updateコマンド

他人がリポジトリに変更を加えたものを自分の作業コピーに反映させる(取得する)には、
updateコマンドを使う。

$ cvs update
変更をリポジトリへ登録 commitコマンド

自分の変更分をリポジトリへ登録するには commitコマンドを使う。

$ cvs commit ファイル名
ファイルとディレクトリの追加を登録 addコマンド

自分が作ったファイルが新しく追加されたことを示すには、
addコマンドを使う。

$ cvs add ファイル名
$ cvs commit ファイル名
ファイルとディレクトリの削除を登録 removeコマンド

自分がファイルやディレクトリを削除した場合は、removeコマンドで
リポジトリに教える。

$ cvs remove ファイル名
$ cvs commit ファイル名

まとめ

意味 コマンド 注意
リポジトリの作成 init リポジトリの場所は-dで指定
プロジェクトの登録 import 登録するプロジェクトの一番上のディレクトリで行う
初めてのプロジェクトを取得 checkout co
リポジトリに反映されたものを取得 update
リポジトリに自分の操作を反映 commit ci
ファイル/ディレクトリの追加 add commitしないと結局反映されない
ファイル/ディレクトリの削除 remove commitしないと結局反映されない
接続方式を記憶する環境変数 CVS_RSH sshを指定する場合もCVS_RSHという名前(歴史的事情)
リポジトリの場所を記憶する環境変数 CVS_ROOT グローバルオプションは-dと同じもの名前がややこしすぎるのが難点

参考:

CVSによるオープンソース開発

CVSによるオープンソース開発