Landscape トップページ | < 前の日 2004-09-03 2004-09-04 次の日 2004-09-08 >

Landscape - エンジニアのメモ 2004-09-04

Windows で CVS サーバとクライアントを使う


* Windows で CVS サーバとクライアントを使う

この記事の直リンクURL: Permlink | この記事が属するカテゴリ: [ソフトウェア]

複数のソース、ドキュメント、リソースファイルその他で構成されるシステムを作ることになった。

作るのは問題ないのだが、このシステムの開発をする場所にはまともなソースコード管理システムがない。今回の開発担当は私だけなので規模は超が付くほど小さいが、これは紛れもなく「プロジェクト」だ。それなのにソースコード管理システムが無いというのでは、プロジェクトの失敗は目に見えている。別の場所での開発では VSS (Visual Source Safe) や PVCS を使っているが、このプロジェクトにはそんな予算はない。となると CVS や Subversion などのフリーソフトウェアを使うことになる。

- そうだ、CVS にしよう

CVS と Subversion のどちらを使おうか迷った末、CVS を使うことにした。理由は、結城さんが Windows 環境だけで完結する CVS 環境構築と操作方法のドキュメントを書いていたからだ。他にもいくつか有用そうなドキュメントがあった。

CVSの基礎練習
http://www.hyuki.com/techinfo/cvsinit.html

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

CVS--Concurrent Versions System (in Japanese): CVS--Concurrent Versions System (in Japanese)
http://www.sodan.org/~penny/vc/cvs-ja.html
日本語版 CVS マニュアル。

入門 CVS サポートページ
http://mikamama.com/CVSBook/

実用CVS実用CVS

ジェニファー ベスパーマン / Jennifer Vesperman / 滝沢 徹 / 牧野 祐子
発売日: 2003/12


amazon で詳しく見る   bk1で詳しく見る

今まで2秒くらいしか CVS を使ったことがない私には、わかりやすいドキュメントは不可欠だ。本を買っても良いけど、ウェブ上のドキュメントだけで何とかなりそう。

- Windows だけで完結する CVS 環境のセットアップ

CVS サーバは Windows2000、CVS クライアントも Windows2000 という環境で CVS を使いたい。要するに一人 CVS 環境。以下、作業記録。ほとんど「CVS の基礎練習」のままだけど。

- Windows 版 CVS のインストール

Widows2000 Professional に Windows 版 CVS をインストールする。
http://www.wincvs.org/ から最新版をダウンロード。今回は WinCvs13b17-2.zip をダウンロードしてセットアップ。
インストール先はデフォルトの C:\Program Files\GNU\WinCvs 1.3 にした。

- CVS が使う環境変数の設定

コマンドプロンプトから CVS のコマンドを起動しやすくするため、「マイコンピュータ」の「プロパティ」の「詳細」タブを開き、「環境変数」ボタンを押し、システム環境変数の変数 PATH に C:\Program Files\GNU\WinCvs 1.3\CVSNT を追加した。
バックアップの都合上、CVS リポジトリは e:\MyDocuments\cvsroot に配置したいので、システム環境変数の変数 CVSROOT を :local:e:\MyDocuments\cvsroot で追加した。

ディレクトリ e:\MyDocuments\cvsroot を作成。

- cvs init でリポジトリを初期化

コマンドプロンプトを起動して cvs init を実行。
e:\>cvs init

- cvs import でリポジトリに追加する

「CVS の基本練習」では以下のようにして「カレントディレクトリ以下を新しいモジュールmyprojectとしてリポジトリにインポート」している。
C:\work\myproject> cvs import -m "My Project" myproject hyuki myproject_0_1

注意点として「cvs importするときには、目的のディレクトリの「中」にいるようにすること。 」だそうだ。

構文は cvs import -m "COMMENT" PROJECT_NAME VENDER_TAG RELEASE_TAG となっている。

私のプロジェクト名は hikaru で、作業ディレクトリは E:\cygwin\home\aqua\project\hikaru なので、そのように書き換えて実行。
E:\cygwin\home\aqua\project\hikaru>cvs import -m hikaru hikaru hiroaki hikaru_0_1

- cvs checkout で CVS リポジトリからチェックアウト

注意点は「cvs checkoutするときには、目的のディレクトリの「中」ではなく「1つ上」にいるようにすること。 」とのこと。

E:\cygwin\home\aqua\project>cvs checkout hikaru
cvs checkout: Updating hikaru
U hirkaru/README

- cvs commit で CVS リポジトリにコミット

E:\cygwin\home\aqua\project> cvs commit -m "Add README"

上記の指定だとカレントディレクトリをコミットするので、目的のディレクトリの中にいるようにすること。
E:\cygwin\home\aqua\project\hikaru>cvs commit -m "Add README"
cvs commit: Examining .
Checking in README;
E:/MyDocuments/cvsroot/hikaru/README,v  <--  README
new revision: 1.2; previous revision: 1.1
done

- cvs add で CVS リポジトリに新規ファイルを追加

cvs add でファイルを追加。
E:\cygwin\home\aqua\project\hikaru>cvs add create_table.sql
cvs add: scheduling file `create_table.sql' for addition
cvs add: use 'cvs commit' to add this file permanently

コミットして CVS リポジトリに反映させる。
E:\cygwin\home\aqua\project\hikaru>cvs commit -m "Add create_table.sql."
cvs commit: Examining .
RCS file: E:/MyDocuments/cvsroot/hikaru/create_table.sql,v
done
Checking in create_table.sql;
E:/MyDocuments/cvsroot/hikaru/create_table.sql,v  <--  create_table.sql
initial revision: 1.1
done

これで追加完了。ついでに CVS update してローカルのファイル群をリポジトリに同期させておこう。
E:\cygwin\home\aqua\project\hikaru>cvs update
cvs update: Updating .

- CVS と VSS や PVCS との違い

チェックアウトの概念が異なる。VSS や PVSC のチェックアウトは、初期設定だと「リポジトリの該当ファイルをロックして他人が編集できなくしてから、自分のローカルにコピーして編集作業開始。」という意味。CVS のチェックアウトは「リポジトリをローカルにコピーする」くらいの意味。

リポジトリへの編集結果の反映は、VSS やPVCS だと「チェックイン」と呼び、チェックアウト (リポジトリの該当ファイルをロックしたうえでファイルローカルにコピー) した人だけに許可される。CVS は「コミット」と呼び、ロックしていなくてもリポジトリに反映できる。

自分が最後に update したあとに、別のユーザなどによりリポジトリにコミットがあり、そのまま自分の編集結果をコミットしようとした場合、コンフリクトが発生する。windowsユーザのためのcvs入門 http://www007.upp.so-net.ne.jp/kengai/linux/cvs.html によると、コンフリクトした場合「とりあえずupdate」を行い、変更部分をマージしてからコミットし直すとのこと。なるほど、オープンソースのプロジェクトみたい緩やかな結びつきで開発チームが結成されている場合は、この方がやりやすいんだろうね。

あ、「windowsユーザのためのcvs入門」って、「圏外からのひとこと」http://amrita.s14.xrea.com/d/ の essa さんが書いたのか。サイトを移転してもファイルを消さずに残しておいてくださったおかげで CVS についての理解が深まった。ありがたいことだ。

GUI を使った CVS の操作は、今後の課題。とりあえずは今の CUI のままでも不満はないし。eclipse とかを使うと良いらしい。

すべての記事の見出し (全1029件)
全カテゴリの一覧と記事の数
カテゴリごとに記事をまとめ読みできます。記事の表題だけを見たい場合は、すべての記事の見出し (カテゴリ別表示) へ。

直近30日分の記事
2007-04-23 (Mon)
2007-03-07 (Wed)
2007-02-27 (Tue)
2007-01-17 (Wed)
2007-01-15 (Mon)
2007-01-14 (Sun)
2007-01-08 (Mon)
2006-12-01 (Fri)
2006-11-22 (Wed)
2006-11-20 (Mon)
2006-11-19 (Sun)
2006-09-30 (Sat)
2006-08-29 (Tue)
2006-08-04 (Fri)
2006-07-27 (Thu)
2006-07-23 (Sun)
2006-07-17 (Mon)
2006-07-10 (Mon)
2006-07-06 (Thu)
2006-07-03 (Mon)
2006-06-29 (Thu)
2006-06-28 (Wed)
2006-06-27 (Tue)
2006-06-25 (Sun)
2006-06-19 (Mon)
2006-06-18 (Sun)
2006-06-15 (Thu)
2006-06-11 (Sun)
2006-06-01 (Thu)
2006-05-30 (Tue)
プロファイル
斎藤 宏明。エンジニアです。宇都宮市に住んでいます。
リンク
RSS
スポンサードリンク
Powered by
さくらインターネット

© 斎藤 宏明 Saito Hiroaki Gmail Address
Landscape - エンジニアのメモ http://sonic64.com/
Landscape はランドスケープと読みます。
ひらがなだと らんどすけーぷ です。