gate-toroku-system

gate システム 開発での CVS の管理・利用の手引き

2007/05/19
gate-toroku-system 開発チーム
$Id: CVS_use.html,v 1.4 2007/05/19 09:37:03 odakker Exp $


  1. はじめに
  2. CVS のインストール と プロジェクトの開始
  3. リポジトリの作成
  4. プロジェクトの開始
  5. リポジトリのカスタマイズ
  6. CVSの利用
  7. CVS についての参考資料

1. はじめに

[1.1] CVS (Concurrent Versions System) とは??

  • ファイルごとのバージョン管理
  • プロジェクトごとのバージョン管理
  • 複数開発者による同時更新を実現するためのソフトウェア.
  • gate システムの開発は複数で行っていたため, また今後の修正を考えた上で CVS を利用している.

    [ep local] 北大理・EP サーバに固有の事情は インデントした段落に緑の文字で記した。 たとえばこの段落がそうである。


    2. CVS のインストール

    CVS を利用するためにはそのためのパッケージをインストールし, 共同で開発を行うことができるよう下準備をする必要がある.

    既に CVS がインストールされ, プロジェクトの下準備ができている 場合は, 下記の 「3. CVS の利用」 を参照されたい.


    [2.1] パッケージのインストール

    インストールするパッケージは以下のとおり

    3. CVS リポジトリの作成

    [3.1] リポジトリポリシー

    "リポジトリ"とは, CVSによって開発されているソフトウェアの マスターコピーが置いてある保管庫ディレクトリのことである. まずは, その"リポジトリ"のためのディレクトリを作成する.

    gate-toroku-sysytem のリポジトリは以下のポリシーで作成, 管理していく.

    • gate-toroku-system のリポジトリはホスト www.ep.sci.hokudai.ac.jp の /home/gate/cvsroot に作成する
    • gate-toroku-system のリポジトリ内のファイルを編集可能なのは, www.ep.sci.hokudai.ac.jp にアカウントを持ち (ssh で www.ep.sci.hokudai.ac.jp にログインでき), gate グループに入っているユーザのみとする.
    • コミット時には gate ユーザにメールを送信する.
      • 本来は開発グループの全員にメールを送るべきであろう. gate ユーザにメールを送るのは, gate に送られたメールが gate グループ全員に送られるような設定が別途なされている からである.
    • gate-toroku-system のリポジトリ内のテキストデータの日本語文字コードは EUCとする. (単にプラットフォームが Linux で, その標準文字コードが EUC であるという理由に基づいているのみである).
    • 上記と同様に, commit 時のログメッセージに関しても, 英字または EUC の日本語のみとする.

    [3.2] リポジトリの作成

    以下では, 仮にリポジトリ用のディレクトリに /home/gate/cvsroot を 使用するとして話を進める.

    [3.2.1] リポジトリの作成

    [ep local] EP ネットワークで利用している gate-toroku-system には開発当初から管理を行っている リポジトリ(下記参照) がデータベースサーバの /home/gate/cvsroot に存在している. (そのはずである)
    そのため, そのリポジトリが消失してしまったりしない限りは (そうならないことを祈っているが) EP サーバで利用する gate-toroku-system のために新たなリポジトリ を作成してはならない.

    まずは gate グループユーザになる. そして 作成するファイルのグループが グループに書き込み権限を与えるように環境変数を変更する.

    $ sudo -u gate -s
    $ umask 002

    準備が出来たら以下のコマンドを実行する. これで cvsroot ディレクトリが作成されたはずである.

    $ cvs -d /home/gate/cvsroot init

    以上の作業によって /home/gate/cvsroot 以下に CVSROOT という ディレクトリが作成される. このディレクトリの中には, CVS の動作を制御するためのさまざまな管理ファイルが含まれている.

    ※この CVSROOTディレクトリ と, 後で紹介する環境変数 $CVSROOT は全くの別物で関連性はない.


    4. プロジェクトの開始

    [4.1] プロジェクトの開始

    最後に, リポジトリに gate-toroku-system のソースコードを 格納し, gate-toroku-system の開発プロジェクトを開始する.

    [ep local] 繰り返すようだが, gate-toroku-system には 開発当初から管理を行っているリポジトリが データベースサーバに存在し, gate-toroku-system という プロジェクトも既に存在する. そのプロジェクトのディレクトリを失ってしまった場合で無い限りは 新たに gate-toroku-system プロジェクトを始めてはいけない.

    プロジェクトを開始する. そのために, まずは cvsroot を指定する 環境変数 CVSROOT と www.ep.sci.hokudai.ac.jp へのアクセス方法を指定する 環境変数 CVS_RSH を設定する. (これらを指定しなくともコマンドに直接指定する方法もある).

    $ export CVSROOT=:ext:www.ep.sci.hokudai.ac.jp:/home/gate/cvsroot
    $ export CVS_RSH=ssh

    なお, www.ep.sci.hokudai.ac.jp 内で作業をおこなう場合には

    $ export CVSROOT=/home/gate/cvsroot
    のみでも構わない.

    次に, プロジェクトとして含むファイル群の位置まで移動する. 仮に /home/morikawa/gate 以下にプロジェクトのソース, ドキュメントなど全て含めて置いてあるならば, まず そこへ移動する.

    $ cd /home/morikawa/gate

    ここで cvs import コマンドを実行するとカレントディレクトリを先頭 として全てのファイルがインポートされる. 余計なファイルは全て 消しておくこと. ( .*** ファイルは ls では見えないので ls -a で ちゃんと探すこと).

    掃除が終ったらプロジェクトを開始させる. 開始は以下のコマンドでおこなう.

         $ cvs import -m \
           "gate-toroku-system " gate-toroku-system gate Initial
                            ↑            ↑        ↑    ↑
                          コメント   プロジェクト名 | リリースタグ
                                          ||        |
                                     ディレクトリ名 |
                                                   ベンダー

    「No conflicts created by this import」 というような メッセージが出れば, インポート成功.

    なお, このコマンドについての解説は割愛する. 詳しく知りたい場合は 資料 1, 4 を参照していただきたい.

    permition

    [4.2] プロジェクトのパーミッションの確認

    プロジェクトのディレクトリのパーミッションを確認しておく.

    $ ssh www.ep.sci.hokudai.ac.jp
    $ cd /home/gate/cvsroot
    $ ls -l
    drwxrwsr-x    3 morikawa gate          53  8月 31 19:40 gate-toroku-system/

    上記のようにグループが gate で権限が rws の場合は問題ない. もしそうでないのなら, 以下のコマンドでグループとパーミッションを 変更すること.

    $ chgrp gate gate-toroku-system
    $ chmod g+s gate-toroku-system
    $ chmod g+w gate-toroku-system

    なお, もしも gate-toroku-system が上記のようなパーミッションになっていなかった 場合, それよりも下層ディレクトリのパーミッションもそれと同様な 可能性がある. それらに関してもグループとパーミッションを設定すること.

    ※ プロジェクト以下にある「ファイル」に関しては (グループは gate である必要があるが) パーミッションは -r--r--r-- で問題ない. cvs コマンドを介せば, 正しく commit, add, remove などが可能である.


    5. リポジトリのカスタマイズ

    [3.1] リポジトリポリシー にあるように, リポジトリをカスタマイズする.

    [5.1] コミット時には gate ユーザにメールを送信する

    以下では, コミット時にユーザにメールを送信するための設定を記す.

    [5.1.1] CVSROOT のチェックアウト

    コミット時にメールを送信するためにはリポジトリ以下の CVSROOT ディレクトリの loginfo を編集する必要がある. 直接書き換えることも不可能ではないが, ちゃんとしたお作法として, まず CVSROOT をチェックアウトする. チェックアウトの方法はその他のプロジェクトと同様である.

    $ export CVSROOT=:ext:www.ep.sci.hokudai.ac.jp:/home/gate/cvsroot
    $ export CVS_RSH=ssh
    $ cd <適当なディレクトリ>
    $ cvs checkout CVSROOT

    すると, CVSROOT ディレクトリが展開される.

    [5.1.2] cvsform.pl の追加

    あまり難しいことをしなくても, 数行 loginfo に加えるだけでコミッ トメールを出すことは可能だが, より見やすいログメッセージを出すべ く cvsform.pl を作成する. これは gtool4 開発時に toyoda さんが作 成した cvsdiff.pl を改造したものである.

    これを cvs add, cvs commit で CVSROOT に追加する.

    $ cvs add cvsform.pl
    $ cvs commit -m "Format Messages of commit mail." cvsform.pl

    cvsform.pl を commit したことで, CVSROOT 内に cvsform.pl,v が 作成されたはずである. しかしこのままでは, CVSROOT 内に cvsform.pl が存在しないので, 本来の役目を果たせない. よくよく CVSROOT 内を見ると,

    $ cd cvsroot/CVSROOT
    $ ls -l
    
    Emptydir/       cvsform.pl,v   loginfo,v  taginfo
    checkoutlist    cvswrappers    modules    taginfo,v
    checkoutlist,v  cvswrappers,v  modules,v  val-tags
    commitinfo      editinfo       notify     verifymsg
    commitinfo,v    editinfo,v     notify,v   verifymsg,v
    config          history        rcsinfo
    config,v        loginfo        rcsinfo,v

    のようにファイルの作業用コピーが RCS リビジョン (****,v) ファイル と並んで含まれているのが分かる. CVSROOT という管理ディレクトリの 特殊機能として, RCS リビジョンを cvs コマンドによって更新すると 作業用コピーもアップデートされるようになっているのである.

    cvsform.pl もこのようにするには, checkoutlist にそのファイルを 追加すると良い. この場合の更新も, 先と同様, CVSROOT を checkout し, その中の checkoutlist を更新し, commit すると良い.

    $ export CVSROOT=:ext:www.ep.sci.hokudai.ac.jp:/home/gate/cvsroot
    $ export CVS_RSH=ssh
    $ cd <ローカルの適当なディレクトリ>
    $ cvs checkout CVSROOT
    $ cd CVSROOT
    $ emacs checkoutlist

    以下の一行を追加する.

    cvsform.pl        unable to check out / update cvsform.pl in CVSROOT

    行頭はファイル名, 空白を挟んだ後半がチェックアウトできない場合に 表示されるエラーメッセージである. 編集が終ったら commit する.

    $ cvs ci -m "Add cvsform.pl" checkoutlist

    こうすることで, commit が完了されると共に, メッセージ

    cvs server: Rebuilding administrative file database

    にもあるように, CVSROOT 以下のファイルがリビルドされ, cvsform.pl,v から cvsform.pl が作成される. 今後, cvsform.pl を commit する毎に, CVSROOT 以下の cvsform.pl も更新される.

    [5.1.3] loginfo の編集 (プロジェクトと宛先の設定)

    最後に loginfo を編集する. ここに, 各々のプロジェクト名と 宛先を設定する. cvsform.pl を作成したので, 以下のように 記述する.

    gate-toroku-system  perl $CVSROOT/CVSROOT/cvsform.pl gate@ep.sci.hokudai.ac.jp %{sVv}
    DEFAULT perl $CVSROOT/CVSROOT/cvsform.pl gate@ep.sci.hokudai.ac.jp %{sVv}

    これにより, gate-toroku-system プロジェクトで行なわれた変更は gate@ep.sci.hokudai.ac.jp 宛てに送られる. また, それ以外のプロジェクト を立ち上げた場合も gate@ep.sci.hokudai.ac.jp に送られる. もしも新しくプロジェクトを始めたならば, 同じように記述すると 良いだろう.

    以上で作業は終了である. 実際のメール配送に関しては gate-toroku-system プロジェクト以下のファイルを commit してみて確認して欲しい.


    [5.2] バイナリデータの扱い

    CVS は $Revision: 1.4 $ などというような特殊な文字列を $Revision: 1.4 $ のように置き換えたり, 改行コードを LF 形式に置き換えたりするように なっている. これは便利な機能の1つなのだが, バイナリデータなどで 偶然こういった文字列と認識されて置き換えられると, 結果的に データが壊れてしまう. そのため, ある拡張子のデータに関しては バイナリデータと取り扱うようにする. これには CVSROOT 以下の cvswrappers に以下のような記述を加えると良い.

    *.gif -k 'b'
    *.GIF -k 'b'
    *.jpg -k 'b'

    こうすることで, 拡張子が gif, GIF, jpg のものに関してはバイナリ データと扱われ, 文字列の置換が行なわれなくなる. (これは開発者個々人が cvs add する際に -kb オプションを付けるのと 同じ効果を発揮する.)


    [5.3] ファイルの文字コードチェック

    上記ポリシーで「日本語文字コードは EUC」としていたが, 各ユーザの 開発環境を完全に EUC にすることは難しく, Shift-JIS などで commit されてしまう可能性がある. よって, EUC 以外のデータに 関しては, commit されないように設定する. 改行コードは CVS の仕様で自動的に UNIX 形式 (LF 形式) に 変換されるので, ここでは気にしないことにする.

    [5.3.1] 文字コードチェック用 Perl スクリプト kanjichecker.pl の追加

    上記のリンクから kanjichecker.pl を取得し, 作業コピーの CVSROOT 内に置く. そして add , commit する.

    $ cvs add kanjichecker.pl
    $ cvs commit -m "Kanji code checker." kanjichecker.pl

    また, checkoutlist に以下の一行を加え, それもまた commit する.

    kanjichecker.pl   unable to check out / update kanjichecker.pl in CVSROOT
    $ cvs commit -m "Add kanjichecker.pl" checkoutlist

    [5.3.2] commitinfo にフィルターを設定

    commitinfo に以下のように記述する.

    ALL       perl $CVSROOT/CVSROOT/kanjichecker.pl euc

    これにより, Shift-JIS や JIS コードのファイルは commit 出来ないようになる.

    もしも sjis や jis コードのファイルを commit しようとすると 以下のようなメッセージが返る.

    === cd /home/morikawa/GATE/gate-toroku-system/
    === /usr/bin/cvs commit -m 'This is test.' cvs_test.txt
    
    cvs_test.txt include sjis, current code is euc.
    cvs server: Pre-commit check failed
    cvs [server aborted]: correct above errors first!
    === Exit status: 1

    [5.3] ログメッセージの文字コードチェック

    上記の手法だと書き換えられるファイル本体の文字コードのチェックは 可能だが, ログメッセージの文字コードのチェックが出来ない. RCS ファイルには本体もログメッセージも両方書き込まれていることから, 文字コードは本体と一致させたい. また, リビジョン毎にメッセージの 文字コードが違うのは気持ち悪いので, それも単一の文字コード (ここでは EUC) にする.

    [5.3.2] ログメッセージ文字コードチェック用 Perl スクリプト msgchecker.pl

    ログメッセージの文字コードのチェック用の Perl スクリプト msgchecker.pl を上記リンクから取得する.

    これを前回同様 CVSROOT に commit する.

    $ cvs add msgchecker.pl
    $ cvs commit -m "log message code checker." msgchecker.pl

    また, checkoutlist に以下の一行を加え, それもまた commit する.

    msgchecker.pl   unable to check out / update msgchecker.pl in CVSROOT
    $ cvs commit -m "Add msgchecker.pl" checkoutlist

    [5.3.3] verifymsg にフィルターを設定

    verifymsg に以下のように記述する.

    gate-toroku-system perl $CVSROOT/CVSROOT/msgchecker.pl euc
    DEFAULT            perl $CVSROOT/CVSROOT/msgchecker.pl ASCII

    これにより, gate-toroku-system プロジェクトに対しては ASCII or euc の ログメッセージが許可され, その他のプロジェクトに対しては ASCII のみが許可されるようになった.

    もしも sjis や jis コードのログメッセージで commit しようとすると 以下のようなメッセージが返る.

    === cd /home/morikawa/GATE/gate-toroku-system/
    === /usr/bin/cvs commit -m 'テスト' cvs_test.txt
    
    log message is sjis , Please write log message ASCII or euc .
    cvs [server aborted]: Message verification failed
    === Exit status: 1

    管理者としての作業は以上である. 後はそれぞれの システムの開発者が このシステムを共同開発していくことになる.

    以下でプロジェクトの参加者がどのようにCVSを利用するのかを 解説する.


    6. CVS の利用

    ここでは, 既に CVS はインストールされ, プロジェクトも開始できる準備が整っている段階で プロジェクトの参加者がどのように開発を行うかについて 記す.

    [6.1] 始めに

    CVS によって開発を行う場合, まず始めにリポジトリ (CVSによって開発されているソフトウェアの マスターコピーが置いてある保管庫ディレクトリ)から プロジェクトの内容を取り出し, 自分用の編集スペース ("作業用コピー"という)にコピーを作る.

    [ep local] EP ネットワークでは, データベースサーバの /home/gate/cvsroot をリポジトリ用のディレクトリとして使用している.

    ここではリポジトリが www サーバ (ドメイン名 www.ep.sci.hokudai.ac.jp) の /home/gate/cvsroot にあると仮定して話を進める.

    [6.1.1] リポジトリの位置の指定

    a. 作業用コピーとリポジトリが同じホスト内にある場合

    以下のように環境変数 $CVSROOT を設定する.

    $ export CVSROOT=/home/gate/cvsroot

    b. 作業用コピーがリモートにある場合

    自分の作業コピーがリポジトリとは別のコンピュータにある場合, 以下のように環境変数 $CVSROOT$CVS_RSH を設定する.

    $ export CVSROOT=:ext:hogehoge@www.ep.sci.hokudai.ac.jp:/home/gate/cvsroot
    $ export CVS_RSH=ssh
    ※ ユーザ名「hogehoge」は適宜自分のユーザ名に変更すること.

    なお, 上記のコマンドの説明をすると,

    $ export CVSROOT=:[アクセス方法]:[[ユーザ名]@リポジトリのホストのアドレス]:リポジトリのディレクトリ

    上記コマンドの ext は外部接続プログラムを使用する 方式で, その外部接続プログラムは環境変数 $CVS_RSH で指定する.

    [ep local] EP ネットワークでは, リモートホストへの アクセスには ssh を使用しているため, この外部接続プログラムでも ssh を使用する.

    接続方法がこれとは異なる場合は 資料 2, 4 その他関連情報を 参照して適宜設定していただきたい.

    ※ ssh によるアクセスの場合, 当然パスワードを要求される.

    [6.1.2] gate-toroku-system の取り出し

    リポジトリにある gate-toroku-system を取り出す. これを"チェックアウト"という.

    実際に"チェックアウト"を行う前に, 作業用コピーを作成するディレクトリに移動してから checkout コマンドを使用する.

    例えば, hogehoge さんが ホームディレクトリに直接 作業用コピーを作成する際には以下のようにする.

    $ cd /home/hogehoge
    $ cvs checkout gate-toroku-system

    すると, ホームディレクトリに「gate-toroku-system」という ディレクトリができているはずである. gateシステムのコマンドなどがそのディレクトリ内に入っているはずである. 確認してほしい.


    [6.2] 普段の開発手順

    上記の"チェックアウト"によって自分用の作業コピーが作成された. 普段はこの作業コピーを編集し, それをリポジトリに反映させることで 開発を進めていく事になる.

    (以下では, 既に$CVSROOT$CVS_RSH は設定済みとする.)

    [6.2.1] 最新情報の更新

    複数人で共同開発を行う場合, 自分が新たな作業を行う前に 他の開発者が変更を加えている場合があるので, 作業の前に必ず以下のコマンドを 実行し, 作業ディレクトリを最新化しておくこと.

    $ cvs update

    上記のコマンドでは対象のファイルを明示的に示していない. この場合はカレントディレクトリ以下の全てのファイル, ディレクトリが 指定されている事になる. (つまり, /home/hogehoge/gate-toroku-system でこのコマンドを実行すると gate システムに関する全てのファイルが更新されることになる.)

    ファイルやディレクトリの指定ができないわけではなく, 以下のようにして 指定する事も可能である. (あまりしないけど)

    $ cvs update [ディレクトリ(ファイル)]

    また, 上記のコマンドでは, チェックしたディレクトリと更新された ファイルの情報が標準出力に出力されるが, -q オプションを指定すると 更新されたファイル情報のみが出力される.

    $ cvs -q update

    [6.2.2] 編集したファイルをリポジトリに反映

    ファイルに何らかの変更を加え, その変更内容をリポジトリに 反映させるには以下のコマンドを使用する.

    $ cvs commit -m "コメント" [ファイル(ディレクトリ)]

    なお, -m オプションは必須である. (もし付けなかった場合は $EDITOR で指定されているエディタが起動し, コメントの入力を求められる.) コメントを付けない場合は, ダブルクォーテーション(")の間を 空にしておくこと.

    また, ファイルを指定しなかったり, ディレクトリを指定した場合は 複数ファイルを同時にコミットすることになるが, どのファイルを編集したのか混乱しないよう, 単一のファイルを指定してコミットする事を推奨する.

    [6.2.3] 新規ファイルの追加

    新たにファイルを作成し, gate システムに加えるには 自分の作業コピーにそのファイルを加えた後, 以下のように, add オプションと commit オプションの 2 つの手順を実行しなければならない.

    $ cvs add 新規ファイル
    $ cvs commit -m "コメント" 新規ファイル

    [6.2.4] 新規ディレクトリの追加

    ディレクトリを追加する場合は 自分の作業コピーにそのディレクトリを作成し, 以下の add オプションを使うだけでよい.

    $ cvs add 新規ディレクトリ

    [6.2.5] ファイルの削除

    ファイルを削除する場合, まずそのファイルを削除し, その後, remove オプション, commit オプションを実行する.

    $ rm 削除するファイル
    $ cvs remove 削除するファイル
    $ cvs commit -m "コメント" 削除するファイル

    (なお, リポジトリには削除されたファイルの過去の履歴が残っているので, 復帰は可能である. 具体的な方法は [6.3] その他の CVS コマンドの [6.3.4] 旧バージョンを復帰させる方法, を参照せよ.)


    [6.3] その他の CVS コマンド

    上記のコマンドで, 必要最低限の作業はできるが, その他にも便利なコマンドがあるのでいくつか記す.

    [6.3.1] リポジトリと作業用スペースとの内容比較

    リポジトリの内容と作業用スペースとの内容を比較したい場合, 以下のコマンドを使う.

    $ cvs diff [ファイル(ディレクトリ)]

    変更のあるファイルの変更部分のみ表示する場合には -Q オプションを 付ける.

    $ cvs -Q diff [ファイル(ディレクトリ)]

    変更部分が見やすいように, 変更部分の前後 3 行も表示するには さらに, -c オプションをつけるとよい.

    $ cvs -Q diff -c [ファイル(ディレクトリ)]

    なお, この形式で表示した場合, 変更があった行の行頭には 「+, -, !」のいずれかが付き, それぞれ 「追加, 削除, 変更」を示す.

    [6.3.2] バージョン間での内容比較

    バージョン間での内容の比較を行うには, diff オプションに更に -r オプションをつける.

    例えば, gate-db-to-shadow ファイルのバージョン 1.44 とバージョン 1.45 を比較する場合には以下のコマンドを使用する. (以下に加えてある -c オプションは必須ではない)

    $ cvs diff -c -r 1.44 -r 1.45 gate-db-to-shadow

    説明すると, 以下のようになる.

    $ cvs diff -c -r バージョン [-r バージョン] [ファイル(ディレクトリ)]

    バージョンを一つしか指定しない場合は, そのバージョンと最新バージョン との比較になる. また, 出力される量が多くなるためファイルは指定した 方が無難である.

    [6.3.3] 過去の履歴を表示

    ファイルがいつ, 誰によって変更されたのかを知るには 以下のコマンドを使用する.

    $ cvs log [ファイル(ディレクトリ)]

    [6.3.4] 旧バージョンを復帰させる方法

    場合によっては, 前のバージョンに戻した方が良い場合もあるだろう. 以下は, 旧バージョンを復帰させる方法である. ただし, バージョン番号が前に戻る事はない. 内容は前のものに戻っても, バージョン番号は更に新しいものになる.

    例えば, gate-ip-apply ファイルをバージョン 1.35 に戻す場合, 以下の手順で作業を行う. (現在のバージョンを 1.37 とする.)

    $ cvs -Q update -p -r 1.35 gate-ip-apply > gate-ip-apply
    $ cvs commit -m "コメント" gate-ip-apply

    以上の作業で gate-ip-apply の内容はバージョン 1.35 のものに戻り, バージョン番号は 1.38 になる.

    なお, この方法によって, cvs から削除されたファイルも復帰が可能である. (cvs remove されても, リポジトリにはそれまでの履歴が格納されている).

    この他にも, 復帰の方法はいくつかあるが, ここでは割愛する. 知りたい場合は資料 4 を参照して調べて いただきたい.


    [6.4] CVS オプションの省略形

    cvs には, add, checkout, commit, diff, import, log, tag, update など といった数々のオプションがあるのだが, せっかちな人のために(?)これら にはさらに省略形が用意されている. ここでは, そのいくつかを紹介する.

            正規         省略形
            add          ad,  new
            checkout     co,  get
            commit       ci,  com
            diff         di,  dif
            import       im,  imp
            log          lo,  rlog
            remove       rm,  delete
            tag          ta,  freeze
            update       up,  upd
    

    なお, 省略形に関しては, 以下のコマンドでその一覧を見る事ができる.

    $ cvs --help-synonyms

    7. CVS についての参考資料


    管理人: gate@ep.sci.hokudai.ac.jp