計算の理論 I -講義についてー

情報システム構築
-グループ分けとCVSの初期設定-
金曜4校時
掛下哲郎 大月美佳
今日の講義内容
テーマ決定とグループ分け
何を作りたいか話し合おう
テーマごとにグループに分かれよう
CVSの使い方の演習
演習室に移動してやる
作るものを決めよう
必須条件
指定の開発環境
UNIX OS(Solaris or Red Hat Linux)
指定の言語、ツールを使用
C++ (G++), CVS, Make, CppUnit
学科のコーディング規約を厳守
GUIはWebインターフェース
対象領域は自由
たとえば
ゲームでも可
アドベンチャーゲーム
恋愛シミュレーションゲーム
(対戦)カードゲーム
登録式トーナメントゲーム
案が出ない場合は上のどれか
リアルタイム性の強いものは無理と思われる
とりあえずグループ分け
10名×3グループくらい
テーマが絞れないようならもう少し
CVSとは
バージョン管理システムの一種
ソースコード共有が可能
参考書
「バージョン管理システム(CVS)の導入と活用」
(ソフトバンクパブリッシング) 鯉江 英隆他著
ISBN4797310669
「入門CVS」(秀和システム) 大月美佳著
ISBN4798001058
http://www.mikamama.com/CVSBook/
バージョン管理システム
ファイルの「版(バージョン、リビジョン)」を
管理するシステム
商用システム
Microsoft VSS, Envy, PVCS, etc.
オープンソース
RCS, CVS, subversion, etc.
http://www.daveeaton.com/scm/CMTools.html
CVSの特徴
複数のファイルをまとめて管理
RCSではファイル単位の管理
ディレクトリ操作には弱い
複数人数で共有可能
排他制御ではなく競合解決
秘密主義には向かない
テキストの差分管理
RCSの機能に基づく
バイナリファイルはちょっと苦手
CVSの用語 1
リビジョン
バージョンと同義
数は自動的に振られる
RCSファイル
リビジョン間の差分を保存しておくファイル
モジュール
RCSファイルをまとめたディレクトリ
中央に貯蔵される
CVSの用語 2
リポジトリ
モジュールの貯蔵場所
ローカル、遠隔からアクセス可能
作業コピー
作業のために手元に取り出されたファイル群
独立しており作業を妨げない
競合
作業コピー間で生じた矛盾
ある程度マージ後人間による解決に委ねる
差分の管理イメージ
第3版
(V3)
V2 と V3 の差分
管理される情報
sample.txt
V2->V3
第2版
(V2)
V1 と V2 の差分
V1->V2
sample.txt
第1版
(V1)
sample.txt
第1版
(V1)
CVSのイメージ図
作業コピー
モジュール
RCSファイル
演習室に移動
以後の作業は演習室で行う
速やかに移動すること
開始
CVSにログインしてみよう
X端末にログイン
CVSに遠隔ログインしてみる
[~]% cvs –d
:pserver:[email protected]:/home/cvshome/s
ysdev login
ここのユーザID
今回は仮パスワードを使用する
履修カード未提出者について
モジュールを登録してみよう
ディレクトリを作る
[~]% mkdir test
ファイルを作る
[~] % cd test; cat > README.txt
…
インポートする
[~] % cvs –d
:pserver:[email protected]:/home/cvshome/sysdev
import 9?s??? CS_SAGA_U SYSDEVTEST01
作業コピーを取り出してみよう
ディレクトリを移動する
チェックアウトする
今さっき登録したモジュール
[~] % cvs –d
:pserver:[email protected]:/home/cvshome/sysdev
checkout 9?s???
共有テスト用モジュール
[~] % cvs –d
:pserver:[email protected]:/home/cvshome/sysdev
checkout sharetest
ファイルを編集してみよう
個人用作業コピーの分
[~] % cd 9?s???
[9?s???] % vi README.txt …など
共有テスト用作業コピーの分
[9?s???]% cd ~/sharetest
[sharetest]% vi README.txt
更新してみよう
個人用作業コピーの分
[9?s???] % cvs update
表示はどうなった?
共有テスト用作業コピーの分
[sharetest]% cvs update
表示はどうなった?
ファイルをコミットしてみよう
個人用作業コピーの分
[9?s???]% cvs commit –m “Test commit”
README.txt
共有テスト用作業コピーの分
競合の解消が必要
更新してみよう
個人用作業コピーの分
[9?s???] % cvs update
表示はどうなった?
共有テスト用作業コピーの分
[sharetest]% cvs update
表示はどうなった?
ファイルを加えてみよう
個人用作業コピーの分
[9?s???] % cat > newfile.txt
…Cntl-D
[9?s???] % cvs add –m “New file” newfile.txt
共有テスト用作業コピーの分
ユーザIDのファイルを作成 例:98s001.txt
更新してみよう
個人用作業コピーの分
[9?s???] % cvs update
表示はどうなった?
共有テスト用作業コピーの分
同様
注意:追加しただけではまだリポジトリに反
映されていない。コミットせよ。
ファイルを削除してみよう
個人用作業コピーの分
[9?s???] % cvs remove –f newfile.txt
-fオプションの使用には注意
共有テスト用作業コピーの分
自分が登録したファイルを削除
ここで、更新とコミットを行う
表示に注目
ディレクトリを作ってみよう
注意! ディレクトリは一度作ると削除できま
せん
個人用作業コピーの分
[9?s???] % mkdir newdir
[9?s???] % cvs add newdir
共有テスト用作業コピーの分
ユーザIDのディレクトリを作成する 例: 98s001
更新してみよう
他の作業コピーで追加されたディレクトリ
を自分の作業コピーに反映するには
→更新でオプション-d
共有テスト用作業コピーでテスト
[sharetest] % cvs update -d
補足: -Pをつけると空ディレクトリは取ってこない
比較してみよう
時間があれば練習
sharetestおよび自分のモジュール9?s???で
は自由に
新しいモジュールインポートは避ける
作業コピーを放棄してみよう
ファイルに変更がないかどうか注意!
リリースコマンドを実行する
[~]% cvs –d
:pserver:[email protected]:/home/cvshome/sysdev
release –d 9?s???
[~]% cvs –d
:pserver:[email protected]:/home/cvshome/sysdev
release –d sharetest
CVSからログアウトしておこう
今回はログアウトしておく
[~]% cvs –d
:pserver:[email protected]:/home/cvshome/s
ysdev logout
宿題
WebブラウザでCVS用のパスワードを変更
しておくこと
http://133.49.22.79/lecture/sysdev/regist/
プロジェクト名を考えておくこと
モジュール名として使用する
英語5~20文字程度
例:MarikoADV
推奨
CVSの使用法は練習しておくこと
今回紹介した以外のCVSコマンド
→資料、Webを参考にせよ