情報システム構築 -グループ分けと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を参考にせよ
© Copyright 2024 ExpyDoc