memo.xight.org

日々のメモ

カテゴリ : CVS

1ページ目 / 全1ページ

CVS から Subversion への移行

Summary

cvs2svnは遅いらしいので,cvs export してから svn import するのが良いらしい.

somescript に実行権限を付加

% svn propset svn:executable ON somescript


via

Sledge::Plugin::TokuLog! - Subversion への移行コストはそれに見合うかj
http://d.hatena.ne.jp/tokuhirom/20051130/1133323580
Sledge::Plugin::TokuLog! - えーマジCVS!!CVSが許されるのは小学生までだよね
http://d.hatena.ne.jp/tokuhirom/20051129/1133240808

リビジョンを指定してdiff


  `example.c' のリビジョン 1.14 と 1.19 間の差分を、 unidiff 形式 (フラグ `-u') で出力
  キーワード置換を止めるために `-kk' を指定し,キーワード置換による差分を無視

$ cvs diff -kk -u -r 1.14 -r 1.19 example.c

- Reference
  CVS 日本語マニュアル - diffの使用例
  http://www.linkclub.or.jp/~tumibito/soft-an/cvs/cvs-man/cvs-ja_16.html#SEC131

CVS ディレクトリを Entry に入れてしまったら

こんなエラー表示になってしまったら

  cvs status: warning: directory CVS specified in argument
  cvs status: but CVS uses CVS for its own purposes; skipping CVS directory

原因

$ cvs add hoge/*

  とかやってしまって CVS ディレクトリがEntry に入ってしまっている.

対処法

$ rm -rf hoge/CVS/CVS
$ vim hoge/CVS/Entries

  D/CVS////
  という行を消去

バイナリファイルを追加する

方法

$ cvs add -kb [binary-file]

- 間違えてバイナリファイルを普通に add してしまったら

$ cvs admin -kb [binary-file]
$ cvs update [binary-file]

CVS Tips

.cvsignore と 環境変数 CVSIGNORE

  $CVSIGNORE CVS が無視するファイル名を,空白で区切ったリスト.
  とりあえず *.class を入れておいた.

OpenDarwin CVS Commiterの手引き

checkout -P checkout (co) 時に空のディレクトリを除外する.
update -P -d update (up) 時に空のディレクトリを除外し,追加されたディレクトリを作成.
diff -u -d -b -w diff (di) によって統合 diff (unified diff) 形式の差分を出力.
rdiff -u rdiff によって統合 diff 形式の差分を表示.
cvs -z3 全ての CVS の操作によるデータ転送に,レベル3の gzip 圧縮を使用.

Reference

  CVS--Concurrent Versions System (in japanese)
  http://www.sodan.org/~penny/vc/cvs-ja.html
  OpenDarwin CVS Commiterの手引き
  http://www.opendarwin.org/ja/committer_guide.php

CVS Tips

CVS を ssh 経由で使用する

  環境変数の設定だけでよいらしい.
CVS_RSH=ssh
CVSROOT=:ext:ホスト名:リポジトリのpath

Reference

  Debianサーバ構築ガイド
  http://www2.i-e-c.co.jp/ssh5.html

CVS pserver の設定と利用

設定方法

  /etc/services に以下を記述

cvspserver 2401/tcp

  /etc/inetd.conf に以下を記述

cvspserver stream tcp nowait.400 root /usr/sbin/tcpd /usr/sbin/cvs-pserver

  400 はrespawn[秒]ぽい.
  dpkg-reconfigure cvs したから詳細は不明.

Debianの場合

  /etc/cvs-cron.conf の以下を変更

REPOS="/home/yoshiki/CVS_DB"

  /etc/cvs-pserver.conf の以下を変更

CVS_PSERV_REPOS="/home/yoshiki/CVS_DB"

Remote から CVS を利用

% cvs -d :pserver:yoshiki@example.com:/home/yoshiki/CVS_DB login
% cvs -d :pserver:nishi@foo:/home/yoshiki/CVS co [Project Name]


CVSROOT を環境変数で指定

  CVSROOT を環境変数で指定すると楽だから設定

% setenv CVSROOT :pserver:yoshiki@example.com:/home/yoshiki/CVS_DB


% cvs login
% cvs co [Project Name]

  で login や checkout などが可能になる.

Reference

  バージョン管理システム CVS を使う > CVS PSERVER の設定と利用
  http://radiofly.to/nishi/cvs/cvs-cs-01.html

CVS リポジトリからプロジェクトを削除する方法

そのモジュールでタグをつかっていたら $CVSROOT/CVSROOT/val-tags からその行を削除.

$CVSROOT/CVSROOT/history からモジュールが含まれる行を削除.
以上の作業をやらなくてもリポジトリが壊れたりすることは無い.

Reference

cvs-ml 1076
http://radiofly.to/nishi/cvs/ml-log/msg01069.html

cvs-ml 1077
http://radiofly.to/nishi/cvs/ml-log/msg01070.html

cvs-ml 1078
http://radiofly.to/nishi/cvs/ml-log/msg01071.html

CVSで.fileを管理する

環境変数の設定 (csh,tcsh)

.cshrc に以下を追加
setenv CVSROOT   $HOME/CVS_DB
setenv CVSEDITOR /usr/bin/vim


環境変数の設定 (zsh,bash)

.zshrc .bashrc に以下を追加
export CVSROOT=$HOME/CVS_DB
export CVSEDITOR=/usr/bin/vim


リポジトリの作成

$ cd
$ mkdir CVS_DB
$ cvs init

- 新しいプロジェクトを登録する

$ cvs import [Project Name] [Vender Tag] [Release Tag]

- 登録されているプロジェクトを呼び出す

$ cvs checkout [Project Name]

- 修正したファイルを新バージョンとして登録する

$ cvs commit

- 編集中のファイルが最新か確認する

$ cvs status

- ファイルを最新状態に更新する

$ cvs update

- ファイルの変更を終了する

$ cvs release -d [Project Name]


Reference

バージョン管理システムCVSを使う
http://radiofly.to/nishi/cvs/