80 likes | 325 Views
[CUS02] Subversion 実践編. メンバー向け研修. この研修について. □ 対象 Subversion 実践編を受講、または同程度の方。 □ 内容 Subversion の機能を使って実際の業務に適用した場合を説明します。 □ 予定時間 30 分間を予定. 1. はじめに. Subversion 実践編では、 Subversion 基礎編で説明した機能を把握した後、実際の運用方法やチュートリアルについて学習します。 ここでの解説は、仮想のプロジェクトでの運用シナリオですので、適用するプロジェクトの特性に合わせて運用ルールを調整してください。
E N D
[CUS02] Subversion実践編 メンバー向け研修
この研修について • □ 対象 • Subversion 実践編を受講、または同程度の方。 • □ 内容 • Subversion の機能を使って実際の業務に適用した場合を説明します。 • □ 予定時間 • 30分間を予定
1. はじめに • Subversion 実践編では、Subversion 基礎編で説明した機能を把握した後、実際の運用方法やチュートリアルについて学習します。 • ここでの解説は、仮想のプロジェクトでの運用シナリオですので、適用するプロジェクトの特性に合わせて運用ルールを調整してください。 • Subversion を用いた開発の流れ • Subversion リポジトリの一般的なレイアウト • モジュールリリースごとに行うこと
2.開発の流れ • Subversion を使用した基本的な開発の流れは、次のようになります。 チェックアウト 開発対象のファイルをリポジトリから取り出します これまで通り開発作業を行います。ただし、ファイルの追加・削除は Subversion の追加・削除操作を行っておきます。 ファイル変更・追加・削除 チェックアウト後に他の作業者がコミットしていた場合、Subversion では自分のコミットができないようになっています。自分の変更したファイルを他の作業者が変更していないかを確認するためにも更新操作を行います。 SVN更新 コミット前には最低限コンパイルできる状態にしておきます。コンパイルできないものをコミットすると他の作業者はそのコンパイルできないファイルを受け取ってしまいます。 コミット
3.Subversion リポジトリの一般的なレイアウト • Subversion リポジトリは一般的に次のようなレイアウトにします。 • /trunk • /branches • /tags • □ /trunk • /trunk には、最新のソースコードを配置します。開発者は主にこの trunk をチェックアウトして、新しい機能を実装しコミットを行っていきます。 • □ /branches • 新しい機能を実装していくのは trunk であると説明しました。新しい機能を実装するのと同時に既にリリース済みのソースコードに対して bugfix を行うこともあり得ます。そのようなときのためのフォルダが /branches となります。 • □ /tags • Subversion にはある時点でのスナップショットを取り出す機能があり、そのスナップショットに名前をつけて管理するためのフォルダが /tags となります。
/ trunk tags REL-20070601 4.モジュールリリースごとに行うこと • モジュールをリリースすることになった場合に行うべきことを説明します。(開発リーダが作業するのが望ましい) • リリースすべきソースコード群が trunk の最新バージョン(以降 HEAD)であったとします。この trunk HEAD に名前をつけることでどのバージョンのソースコードをリリースしたのかを明確にすることができます。 • 次のページでその手順を説明します。
4.モジュールリリースごとに行うこと • 1. まず trunk HEAD をチェックアウトした作業コピーを用意します。 • 2. 作業コピーのところで TortoiseSVN メニューから「分岐/タグ」を選択します。 • 3. 表示されるダイアログの「先 URL」に次のような URL を入力します。 • http://<Cubo-IPアドレス>/svn/<プロジェクトパス>/tags/REL-20070601 • 4. ログメッセージに作成したタグの説明を入力して OK を押します。
/ trunk branches VER-2.1 4.モジュールリリースごとに行うこと • この操作により、指定した URL で常にリリースしたモジュールのソースにアクセスできるようになります。trunk に変更をコミットしてもこの URL で取り出せる内容には影響ありません。(REL-20070601 の部分は運用ルールに合わせて変更してください) • branches も同様の操作で作成することができます。