Microsoft Visual SourceSafe を使用したバージョン管理本書に記載の内容は、将来予告なしに変更することがあります。これらの情報について MSE（Magic Software EnterprisesLtd.）および MSJ（Magic Software Japan K.K.）は、いかなる責任も負いません。本書の内容につきましては、万全を期して作成していますが、万一誤りや不正確な記述があったとしても、MSE および MSJ はいかなる責任、債務も負いません。

MSE および MSJ は、この製品の商業価値や特定の用途に対する適合性の保証を含め、この製品に関する明示的、あるいは黙示的な保証は一切していません。MSE および MSJ は、本製品の使用またはその使用によってもたらされる結果に関する保証や告知は一切していません。この製品のもたらす結果およびパフォーマンスに関する危険性は、すべてユーザが責任を負うものとします。この製品を使用した結果、または使用不可能な結果生じた間接的、偶発的、副次的な損害（営利損失、業務中断、業
務情報の損失などの損害も含む）に関し、事前に損害の可能性が勧告されていた場合であっても、MSE および MSJ、その管理者、役員、従業員、代理人は、いかなる場合にも一切責任を負いません。

本書に記載のソフトウェアは、製品の使用許諾契約書に記載の条件に同意をされたライセンス所有者に対してのみ供給されるものです。同ライセンスの許可する条件のもとでのみ、使用または複製することが許されます。当該ライセンスが特に許可している
場合を除いては、いかなる媒体へも複製することはできません。ライセンス所有者自身の個人使用目的で行う場合を除き、MSE
または MSJ の書面による事前の許可なしでは、いかなる条件下でも、本書のいかなる部分も、電子的、機械的、撮影、録音、その他のいかなる手段によっても、コピー、検索システムへの記憶、電送を行うことはできません。

一般に、会社名、製品名は各社の商標または登録商標です。サードパーティ各社商標の引用は、MSE および MSJ の製品に対する互換性に関しての情報提供のみを目的としてなされるものです。

本書において、説明のためにサンプルとして引用されている会社名、製品名、住所、人物は、特に断り書きのないかぎり、すべて架空のものであり、実在のものについて言及するものではありません。

初版

2007年4月17日

マジックソフトウェア・ジャパン株式会社

Enabling Business with Superior Technology

1.

はじめに .............................................................................................................................................4

2.

バージョン管理機能について ...............................................................................................................53.

設定 ...................................................................................................................................................7

4.

3.1.

レジストリの設定..........................................................................................................................8

3.2.

VSS で使用するユーザの設定 .....................................................................................................9バージョン管理サーバに接続する......................................................................................................11
4.1.

新規プロジェクトの作成..............................................................................................................12

4.2.

既にバージョン管理されている既存のプロジェクトに接続する ......................................................14

4.3.

開発途中のプロジェクトをバージョン管理のデータベースに追加する ............................................17

4.4.

プロジェクトをバージョン管理から除外する..................................................................................194.4.1. プロジェクトの除外 .................................................................................................................19
4.4.2. 除外したプロジェクトを再びバージョン管理に接続....................................................................20
5.

バージョン管理の基本操作................................................................................................................24
5.1.

リポジトリのバージョン管理 ........................................................................................................25

5.1.1. チェックアウト .........................................................................................................................25
5.1.2. チェックイン ............................................................................................................................27
5.2.

プログラムリポジトリのバージョン管理 ........................................................................................29

5.2.1. プログラムリポジトリ全体と個別のプログラムのチェックアウト/チェックイン ................................29
5.2.2. 個々のプログラムのチェックアウト...........................................................................................30
5.2.3. 個々のプログラムのチェックイン..............................................................................................31
5.2.4. プログラムリポジトリ全体のチェックアウト ................................................................................33
5.2.5. プログラムリポジトリ全体のチェックイン ...................................................................................34
5.2.6. 新規プログラムの作成............................................................................................................35
5.2.7. アンチェック............................................................................................................................36
5.2.8. 最新プロジェクトの取得 ..........................................................................................................38
5.2.9. 最新バージョンの取得 ............................................................................................................41
5.2.10. 履歴 ....................................................................................................................................43
5.2.11. 差分 ....................................................................................................................................47
5.3.
6.

複数ユーザで交互にチェックイン/チェックアウトを行った場合の例 ................................................50

オフラインモード作業.........................................................................................................................59
6.1.

オフライン作業の基本操作.........................................................................................................60

6.1.1. オフラインに設定....................................................................................................................60
6.1.2. 修正 ......................................................................................................................................61
6.2.

オフラインでのプログラム新規作成と削除について......................................................................68

6.2.1. オフラインでのプログラムオブジェクトの新規作成 ....................................................................68
6.2.2. プログラムオブジェクトの削除 .................................................................................................72

1. はじめにMagic uniPaaS は、マイクロソフト社が定義する SCC（Source Code Control） API をサポートしているので、マイクロソフト社の Visual SourceSafe を使用してバージョン管理機能を実現することができます。
バージョン管理機能は、Magic uniPaaS の実行中にプロジェクトのバージョンを管理し、それらのバージョンを保存したり、過去のバージョンを検索あるいは取得したりすることができます。また、バージョン管理機
能を使用してチーム開発を行うことも可能です。チーム開発を行うことで、複数の開発者が平行してプロジェクトを開発することができます。開発するファイルをチェックアウトして、他のユーザによる上書き操作か
らファイルを保護したり、誰がどのバージョンを編集したかなどユーザの追跡を行うことができます。
バージョン管理システムとして Visual SourceSafe を使用する場合、この文書をお読みください。この文書
は、Magic uniPaaS がバージョン管理システムとして Visual SourceSafe を使用する場合の設定方法とバージョン管理を行うための基本的な手順を説明します。
本書では Visual SourceSafe は既にインストールされていることを前提として書かれています。
尚、Visual SourceSafe のバージョンは 6.0d 以降を使用してください。

2. バージョン管理機能についてバージョン管理は各リポジトリ（モデル、データ、プログラム、ヘルプ、権利、メニュー、コンポーネント）で行
うことができます。uniPaaS Studio は全てのプロジェクトを XML ファイルで管理しているので、バージョン管理をすることはそれら XML ファイルのバージョン管理をしていることになります。
Studio V1
作業フォルダバージョン管理システム

uniPaaS Studioオリジナル
作業フォルダソース

uniPaaS Studio
作業フォルダバージョン管理の基本はチェックアウトとチェックインです。編集するオブジェクトがあれば、バージョン管理システムからチェックアウトして持ち出して編集し、終了したらチェックインして修正したオブジェクトをバージョン管理システムに戻します。

バージョン管理システム

uniPaaS Studio

Prg_1.xml
Ver.0

チェックアウトPrg_1.xml（コピー）編
バージョン管理システム

集uniPaaS Studio

Prg_1.xml
Ver.1

チェックイン

Prg_1.xml（編集終了）

開発をする場合、その対象となるオブジェクトをチェックアウトします。プログラムリポジトリの場合は、プロ
グラムリポジトリの目次（Progs.xml）とプログラムそのもの（Prog_n.xml）をチェックアウトすることになります。
プログラムリポジトリの目次をチェックアウトすることで、行作成、修正、削除などの編集を行います。
なお、チェックアウトは排他的に行われます。すなわち、すでに他のユーザがチェックアウトしているオブジ
ェクト(各リポジトリ、プログラム)をチェックアウトすることはできません。
注意事項
z

各ユーザは作業フォルダをそれぞれのローカルコンピュータに作成してください。作業フォルダをネッ
トワーク上においてそれらを共有しても正しいバージョン管理は行えません。

z

フォルダは各ユーザごとに保有してください。別のユーザが同じコンピュータで作業フォルダを共有しないてください。

z

バージョン管理機能を使用する際は、履歴管理機能も同時にインストールされます。チーム開発時などでそれらを使用しない場合でも、履歴管理機能を削除することはできません。

z

Magic uniPaaS の環境ファイルなど、プロジェクト以外のファイルも含めてバージョン管理したい場合
は、Visual SourceSafe から直接ファイルを追加してください。

3. 設定設定編では既に Visual SourceSafe がインストールされていることを前提として、Magic uniPaaS がVisual SourceSafe を使用するためのレジストリの設定と、Visual SourceSafe のユーザ設定について説明します。

3.1. レジストリの設定
Magic uniPaaS がバージョン管理機能を使用するには以下のレジストリにバージョン管理プロバイダの登録をします。
\HKEY_LOCAL_MACHINE\SOFTWARE\SourceCodeControlProvider
VSS がデフォルトのバージョン管理プロバイダであることを確認するには、レジストリエディタで上記のキーにアクセスし、このキー内の 「ProviderRegKey」 が 「Software\Microsoft\SourceSafe」 と定義されていることを確認してください。
マイクロソフト社の Visual SourceSafe をインストールすると、上記のレジストリは自動で登録されます。万が一、他のバージョン管理ソフトなどをインストールしてこのレジストリが書き換わっている場合は、上記のレジストリを復元しなければいけません。
参考：z

レジストリのキーは、以下の内容をファイルに格納して、レジストリにインポートすることにより、設定することもできます。
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE¥SOFTWARE¥SourceCodeControlProvider]"ProviderRegKey"="Software¥¥Microsoft¥¥SourceSafe"[HKEY_LOCAL_MACHINE¥SOFTWARE¥SourceCodeControlProvider¥InstalledSCCProviders]"Microsoft Visual SourceSafe"="Software¥¥Microsoft¥¥SourceSafe"z

レジストリの内容については、リファレンスマニュアルの以下の部分も参考にしてください。
ソース管理→バージョン管理→バージョン管理による作業→定義内容の登録

z

SCCSwitcher について： 上記レジストリ内容をバージョン管理プロバイダごとに切り替えるツールとして SCCSwither（フリーソフト）が知られています。複数のバージョンプロバイダがインストールされている場合は、このツールを使うとレジストリエディタを使うことなく、バージョン管理プロバイダのレジストリを自動で書き換えてくれます。

3.2. VSS で使用するユーザの設定
VSS ではソースコードの管理をユーザレベルで行います。これらのユーザは OS のユーザとは管理を別にしていますので、uniPaaS Studio で開発を行う前に VSS のユーザを設定しておく必要があります。ここではバージョン管理用のユーザとして magic1 と magic2 を追加します。
1. 「スタート」メニューから Visual SourceSafe アドミニストレーターを起動します。

Visual SourceSafe アドミニストレーターにはデフォルトで Admin と Guest の２つのユーザが表示されています。

2. Magic uniPaaS で使用するユーザ名を設定します。
(1) Visual SourceSafe アドミニストレータで [ユーザー] -> [ユーザーの追加] を実行してください。

(2) 「ユーザの追加」ダイアログが出るので、そこにユーザ名 magic1 を入力します。

[OK] を押します。

(3) magic1 が Visual SourceSafe アドミニストレーターに追加されました。

(4) ユーザ magic2 に関しても同様にして追加を行います。
1. 他の PC からバージョン管理が使用できるように Visual SourceSafe のデータベースのフォルダも共有に設定する必要があります。

アクセスするユーザにはフルコントロールの権限を与えてください。

4. バージョン管理サーバに接続する
Magic uniPaaS でバージョン管理機能を実現するには、Magic プロジェクトを Visual SourceSafe に接続します。接続の方法には次の３種類があります。
１．Magic プロジェクトの新規作成時から VSS を使用して開発する。
２．既にバージョン管理されている既存のプロジェクトに接続する。
３．スタンドアロンで開発中のプロジェクトを VSS に接続する。
この章では３種類の接続の方法と、プロジェクトを VSS から除外する方法について説明します。

4.1. 新規プロジェクトの作成
バージョン管理プロジェクトを有効にして新規にプロジェクトを作成する。
1. 新規プロジェクトを作成します。[ファイル] -> [新規作成] を選択します。

2. 「新規プロジェクト」設定ダイアログが表示されます。ここに新たに作成するプロジェクト名とそのフォルダの位置を設定し、「バージョン管理データベースに新規プロジェクトを作成します」にチェックを設定します。

もしもパスがなければ作成します。

3. ここで Visual SourceSafe へログオンする入力画面が表示されるので、先ほど Visual SourceSafe に設定したユーザ名とパスワードを入力します。

4. 確認ダイアログ「バージョン管理プロジェクトの作成」が表示されます。ここではプロジェクト作成前にコメントを入力することができます。

5. これでプロジェクトを新規作成してオープンすることができました。

これ以降は追加や修正があるごとに VSS のバージョン管理データベースに登録されていきます。

4.2. 既にバージョン管理されている既存のプロジェクトに接続する
新規でプロジェクトが作成された後、二人目以降のユーザは、既に作成されたそのプロジェクトに接続して自らの環境にプロジェクトをコピーし、チーム開発することになります。
1. 他の PC に操作を移します。他の PC にも Magic uniPaaS と Visual SourceSafe をインストールしておきます。
2. Magic uniPaaS を起動し、プロジェクトがオープンされていない状態で、[ファイル] メニューの[バージョン管理] を選択し、[サーバから開く] をクリックします。

3. ここで Visual SourceSafe のデータベースに接続するためのログオンダイアログが表示されます。

4. [参照] ボタンをクリックしてリモートのデータベースを選択します。

5. [開く] をクリックして、ログオンダイアログでユーザ名を入力します。

[OK] をクリック。
6. [Visual SourceSafe からプロジェクトを選択] 画面が表示されるので、使用するプロジェクトを選択します。

7. [OK] をクリックすると Magic uniPaaS の[サーバから開く] ダイアログに選択されたパラメータが入力されて表示されます。

8. [OK] をクリックしてリモート上にある Magic uniPaaS のプロジェクトを開くことができました。

4.3. 開発途中のプロジェクトをバージョン管理のデータベースに追加するバージョン管理を行なっていないプロジェクトを、開発途中でバージョン管理下に追加する場合には以下のように設定を行います。
1. 既に開いたプロジェクトにて、[ファイル] -> [バージョン管理] -> [バージョン管理サーバに追加] を選択する。

2. [バージョン管理プロジェクトの作成] が表示されるので、コメントを適当に入れて[OK] します。

3. データベースに接続します。

4. しかし、データベースにはこのプロジェクトは登録されていませんので、以下のメッセージが出ます。

検索する必要はないので、[いいえ] をクリックします。
5. プロジェクトはバージョン管理で管理されるシステムとしてオープンされ、バージョン管理に必要な機能
はメニュー上で全てアクティブになりました。

4.4. プロジェクトをバージョン管理から除外する
プロジェクトを開発し始めた当初はバージョン管理を行うようにしていて、後でスタンドアロンモードに変更
したい場合にこの操作を行います。

4.4.1. プロジェクトの除外
1.

バージョン管理システムに接続されているプロジェクトを除外します。[ファイル] -> [バージョン管理]-> [プロジェクト除外] を選択します。

2.

確認ダイアログ「バージョン管理からプロジェクトを除外しますか？」が表示されます。

「はい」をクリックします。
3.

プロジェクトはバージョン管理システムから除外されました。これ以降の開発はスタンドアロンで行われます。

4.4.2. 除外したプロジェクトを再びバージョン管理に接続
1.

一度バージョン管理から除外したプロジェクトを再びバージョン管理サーバに追加するには注意が必要です。[ファイル] -> [バージョン管理] -> [バージョン管理サーバに追加] を選択します。

以下のエラーダイアログが表示されます。

これはプロジェクトをバージョン管理から除外した時に、VSS の内部ではリードオンリーのプロジェクトを残していて、これとプロジェクト名が衝突してしまうために発生します。

2.

この場合は Visual SourceSafe エクスプローラを使用して、リードオンリーのプロジェクトを削除してください。Visual SourceSafe エクスプローラでプロジェクト名にカーソルを合わせ、「削除」します。

3.

「削除」ダイアログが出るので、「完全に破棄」にチェックを入れて「OK」をクリックします。

4.

確認ダイアログが出ますが、「はい」をクリックして続けます。

5.

VSS からプロジェクトが削除されました。

6.

この状態でバージョン管理に再びプロジェクトを接続することができます。

5. バージョン管理の基本操作
Magic uniPaaS のバージョン管理はリポジトリレベルで行われます。あるユーザが修正を加えたい時には、対象となるリポジトリを チェックアウト -> 修正 -> チェックインする という手続きを踏みます。この
手続きについては、V9Plus など以前のバージョンでのチーム開発の場合と似ています。
Magic uniPaaS では、各リポジトリは１つの XML ファイルで構成されていますので、バージョン管理システ
ムはそれぞれの XML ファイルを管理しています。
プログラムリポジトリに関してはその例外で、リポジトリ（目次）と各プログラム毎に XML ファイルを所有しています。従って、バージョン管理もリポジトリと各プログラム毎に管理されます。ユーザは各プログラムでチェックアウト -> チェックイン を行ってバージョン管理を行ってください。
この章ではまず各リポジトリの操作を説明し、そのつぎにプログラムリポジトリでの操作を説明します。チェックアウトとチェックインに関しては一般のリポジトリとプログラムリポジトリの場合を分けて書いています
が、その他の機能に関してはプログラムリポジトリの項を参考にしてください。
以前のバージョンと異なるところは、他のユーザの修正内容を反映するタイミングの違いです。
以前のバージョンでは、全ユーザがひとつの MCF ファイルを共有しており、あるユーザがチェックインを行うと、その内容はすぐに全ユーザの環境に反映されていました。
これに対し、Magic uniPaaS のバージョン管理の方法では、あるユーザがチェックインをすると、その内容はバージョン管理システムの管理している XML ファイルには反映されますが、各ユーザが持っているローカルコピーには反映されません。従って、この状態では、バージョン管理システムの内容と各ユーザのローカルコピーとで、不一致が生じていることになります。
特に、モデルリポジトリやデータソースリポジトリなど、プロジェクト全体に影響のあるリポジトリに不一致がある状態でプログラムの開発を続けていると、開発したプログラムが不正なものになってしまう可能性があります。
この問題を避けるためには、不一致を解消するために各ユーザが「最新バージョンの取得」を行う必要があります。モデルやデータソースの修正をする場合には、各ユーザ間でプロジェクトの整合性をとるために
は「最新バージョンの取得」をどのタイミングで行うか、チームの中で十分に検討しておく必要があります。

5.1. リポジトリのバージョン管理
モデル、データ、ヘルプ、権利、メニュー、コンポーネントの各リポジトリは、オブジェクトの単位がリポジトリになっているため、バージョン管理においてチェックアウト/チェックインする場合もリポジトリ単位で行います。ここではプロジェクトを新規作成した場合のモデルリポジトリを例にあげてその手順を紹介します。

5.1.1. チェックアウト
1. バージョン管理下で新規にプロジェクトを作成し、モデルリポジトリを表示させます。

2. 新規にモデルを作成するには、カーソルをタイトルヘッダに置き、チェックアウトをします。[ファイル] -> [バージョン管理] -> [チェックアウト] を選択します。

3. コメント用のダイアログがでるので、適当なコメントを入力できます。

[OK]をクリックするとチェックアウトします。
4. モデルリポジトリで F4 を押してモデルを登録し始めます。

5. いくつかの項目を作成してみます。

6. ここでチェックアウト一覧を見てみます。

[ファイル] -> [バージョン管理] -> [チェックアウト一覧] を選択すると、チェックアウトしたオブジェクトの一覧を表示することができます。

モデルリポジトリのみがチェックアウトされているのが確認できます。
参考： あるユーザがチェックアウトしている時に、他のユーザが同じオブジェクトをチェックインすることはできません。チェックインしようとすると、以下のようなメッセージがでます。

5.1.2. チェックイン
1.

モデルリポジトリを現在チェックアウトしていますが、修正が終了したらチェックインします。[ファイル]-> [バージョン管理] -> [チェックイン] を選択します。

2.

コメントがあれば入力します。

3.

OK ボタンを押せば、チェックイン終了です。

重要： チーム開発の相互間の整合性を保つためには、あるユーザがチェックインした後は、他のユーザ
は「最新バージョンの取得」をして参照するデータに不一致のないようにする必要があります。このことは、
モデルリポジトリやデータソースリポジトリなど、プロジェクト全体に影響を与えるリポジトリに修正を行った場合には特に重要です。

5.2. プログラムリポジトリのバージョン管理プログラムリポジトリは他のリポジトリと違い、プログラムリポジトリ全体（目次）と各プログラムがバージョン管理の対象オブジェクトになります。従ってチェックアウト/チェックインは、プログラムリポジトリ全体と、各プログラム毎に、それぞれ行う必要があります。

5.2.1. プログラムリポジトリ全体と個別のプログラムのチェックア
ウト/チェックイン
プログラムリポジトリの修正を行うとき、次の二つのケースで操作が異なります。
z

既存のプログラムの修正のみを行う場合。

zプログラムの追加、削除、移動などを行う場合。

既存のプログラムの修正のみを行う場合
この場合には、個々のプログラムのチェックインとチェックアウトだけを行います。プログラムリポジトリ全体のチェックイン、チェックアウトは行う必要はありません。従って、手順は以下のようになります。
① 修正しようとするプログラムをチェックアウトする。
② プログラムをズームして開き、修正する。
③ プログラムを閉じて、チェックインする。

プログラムの追加、削除、移動などを行う場合
この場合には、個々のプログラムのチェックイン/チェックアウトのほかに、プログラムリポジトリ全体のチェ
ックイン・チェックアウトが必要になります。従って、手順は以下のようになります。
[プログラム新規作成の場合]① プログラムリポジトリ全体をチェックアウトする。
② F4 キーでプログラムを新規作成する。→ 新規にプログラムが作成される。このプログラムは自動的にチェックアウトされた状態になっている。
③ その後プログラムを開いて適宜修正し、閉じる。
④ このプログラムをチェックインする。
⑤ プログラムリポジトリ全体をチェックインする。

[プログラム削除の場合]① プログラムリポジトリ全体をチェックアウトする。
② 削除しようとするプログラムをチェックアウトする。
③ F3 キーでプログラムを削除する。
④ プログラムリポジトリ全体をチェックインする。

[プログラムの移動の場合]① プログラムリポジトリ全体をチェックアウトする。

② プログラムの移動を行う。
③ プログラムリポジトリ全体をチェックインする。

以下に、それぞれの操作方法について説明します。

5.2.2. 個々のプログラムのチェックアウト
個々のプログラムをチェックアウトするには、次のようにします。
1.

プログラムリポジトリで、修正しようとするプログラムにカーソルを合わせます。

2.

[ファイル] -> [バージョン管理] -> [チェックアウト] を選択します。

3.

ダイアログ「オブジェクトのチェックアウト」が表示されるので、適当なコメントを入力して[OK] を押します。

4.

商品管理はチェックアウトされて修正可能になります。

5.

チェックアウト一覧を表示すると以下のようになります。

参考： チェックアウトしているオブジェクトを他のユーザがチェックアウトしようとする場合、例えば、ユーザ
magic1 でチェックアウトしておいて、他の PC からユーザ magic2 で更にチェックアウトしようとすると、「Prg_2
は既に他のユーザがチェックアウトしています」というようなメッセージが出て、チェックアウトはできません。

5.2.3. 個々のプログラムのチェックイン
1. [ファイル] -> [バージョン管理] -> [チェックイン] を選択してチェックインします。

2. すると以下のコメント入力用のダイアログが出るので、適当なコメントを追加します。チェックインをする
たびにそのオブジェクトのバージョンが設定されるので、何をしたのかをコメントしておくと後で見やすくなります。

3. 「商品管理」がチェックインされたので、[チェックアウト一覧]には既に「商品管理」が表示されないことを確認します。

5.2.4. プログラムリポジトリ全体のチェックアウト
プログラムリポジトリ全体をチェックアウトするには、次のようにします。
1. プログラムリポジトリのタイトルヘッダにカーソルを置きます。
2. [ファイル] -> [バージョン管理] -> [チェックアウト] を選択します。

3. するとコメント入力用のダイアログが出るので、適当なコメントを入力することができます。

4. [OK] をクリックするとチェックアウトします。
参考： [ファイル] -> [バージョン管理] -> [チェックアウト一覧] を選択すると、チェックアウトしたオブジェク
トの一覧を表示できるので、プログラムリポジトリをチェックアウトしたことを確認します。

5.2.5. プログラムリポジトリ全体のチェックイン
プログラムリポジトリ全体をチェックインするには、
1. プログラムリポジトリのタイトルヘッダにカーソルを置き、
2. [ファイル] -> [バージョン管理] -> [チェックイン] を選択します。
チェックインされたプログラムはチェックアウトしない限りはリードオンリーで、F5 でズームしても「読み込み専用でオープンします」となります。

5.2.6. 新規プログラムの作成
新規プログラムを作成するには、次の手順に従って行ってください。
1. 新規プログラムを作成するには、まずプログラムリポジトリ全体をチェックアウトすることが必要です。
5.2.4プログラムリポジトリ全体のチェックアウト」 に従って、プログラムリポジトリ全体をチェックアウトしてください。
2. 次に[F4] を押して１行作成します。ここではプログラム名を「商品管理」とします。

3. [ファイル] -> [バージョン管理] -> [チェックアウト一覧] でチェックアウト一覧を表示させると「商品管理」がチェックアウトされた状態であることが確認できます。

[#2] はプログラムリポジトリ内でのプログラム番号と一致します。
4. この後、必要に応じて新規作成したプログラムを修正してください。
5. 修正が終わったら、5.2.5プログラムリポジトリ全体のチェックイン」 に従って、プログラムをチェックイン
します。
6. 最後に、「5.2.5プログラムリポジトリ全体のチェックイン」に従って、プログラムリポジトリ全体をチェックイ
ンします。
注意： プログラムリポジトリ全体をチェックアウトした状態では、他のユーザはプログラムリポジトリ全体をチェックアウトできません。従って、上の手順の 1 から 6 までの間、他のユーザはプログラムの新規作
成、削除、移動などが行えなくなってしまいます。これでは不便なので、プログラムリポジトリ全体をチェッ
クアウトしている期間を極力短くするように、工夫する必要があります。
今の例で言えば、4 のステップでのプログラムの修正は行わず、新規にプログラムを作成したらすぐにプ
ログラムのチェックイン、プログラムリポジトリ全体のチェックインを行って、プログラムリポジトリ全体のチェックアウト状態を解放するようにしましょう。その上で、作成したプログラムのみのチェックアウトを行い、修正を行うようにしてください。

5.2.7. アンチェック
チェックインをして修正した内容を全て取り消す場合、チェックインしたこと自体を取り消す場合には「アンチェック」を行うことができます。
1. 前述のプログラム「商品管理」チェックインがされている状態で、プログラム名に修正を加え「商品管理－ （修正中）」と変更します。

2. チェックアウト一覧には以下のように表示されます。

3. ここでアンチェックを実行します。
[ファイル] -> [バージョン管理] -> [アンチェック]

4. 確認ダイアログ「チェックアウト取消」が表示され、「このオブジェクトのチェックアウトを取り消します

か？」と聞かれるので、[OK] をクリックします。

5. すると修正とチェックアウトは取り消されて、プログラムリポジトリはチェックアウトをする以前の状態に戻ります。

6. チェックアウト一覧も修正されて商品管理のプログラムは表示されません。

5.2.8. 最新プロジェクトの取得
開発途中にあって最新のプロジェクトが必要な場合、「最新プロジェクトの取得」を実行します。
1. 例えばユーザ magic1 が既に以下のようなプロジェクトを作成し、全てがオブジェクトをチェックインされていた場合。

2. ユーザ magic2 はまだプログラムを開発していません。

3. ここで magic2 が開発を始めるのに現在 magic1 がチェックインしたところまで、プロジェクト全体の最新バージョンを取得する。

4. 確認ダイアログが出て「指定したプロジェクトの最新バージョンを取得しますか？」と聞かれる。「はい」
をクリック。

5. ダイアログ「最新バージョンの結果を取得」が表示され、バージョン管理システムはプロジェクト内にある全てのオブジェクトの最新バージョンを取得します。「Close」を押します。

6. プロジェクト全体を全て最新のものに更新できました。

5.2.9. 最新バージョンの取得
1. 最新バージョンの取得は各オブジェクト単位で最新のバージョンに更新する場合に用いることができます。例としてユーザ magic1 ではプログラムの＃３と＃４が更新されてチェックインされているとします。

2. 一方、ユーザ magic2 ではまだ更新を始めていません。

3. これでプログラム＃３だけを最新バージョンに更新したい場合、[ファイル] -> [バージョン管理] -> [最新バージョンの取得] を選択します。

4. 以下の確認メッセージが出ます。

[OK] を押します。
5. プログラム３が最新バージョンに更新されました。

5.2.10. 履歴
1. チェックインをするたびに各オブジェクトにはバージョンが設定されます。バージョン管理システムは各バージョンのオブジェクトを保存しているので、過去の履歴を見ることができ、また過去のバージョンを取得することができます。

2. プログラム＃３にカーソルを置き、[ファイル] -> [バージョン管理] -> [履歴] を選択します。

3. Magic uniPaaS は VSS の「ファイルの履歴表示オプション」を呼び出します。

4. この場合は全てのバージョンを表示させるので、そのまま[OK] をクリックします。VSS のダイアログ「ファイルの履歴」が表示されます。

5. チェックインの度にバージョン番号がついていますが、例えばバージョン２のラインにカーソルを置いて「取得」ボタンをクリックすると、バージョン２の時のソースを取得することができます。

6. [OK] を押します。

プログラム＃３はバージョン２に戻りました。
7. VSS の「ファイルの履歴オプション」にはその他にも機能があります。
(1) 例えばバージョン２のラインに置いて「表示」ボタンを押すとブラウザの選択が表示され、(2) バージョン２の時点での内容を XML で表示します。

(3) 「詳細情報」を押すと、そのバージョンでの詳細情報を見ることができます。

(4) また、「相違点」ボタンはバージョン２と現在の手元のローカルコピーの相違を VSS のツールを使って表示します。

(5) その他「ピン設定」をクリックすると「ピン解除」するまではバージョン 2 をソースに一時的に反映します。

(6) また、「ロールバック」はカーソルを置いたバージョンにソースを戻し、それ以降の新しいバージョンは無効にするものです。「レポート」はこれまでのバージョン遍歴をレポートにしてファイルやプリンタに出力します。

5.2.11. 差分
1. オブジェクトをチェックアウトして開発している時にオリジナルのソースとの相違を XML レベルで比較することができます。

2. [ファイル] -> [バージョン管理] -> [差分] を選択します。

3. バージョン管理システムは VSS の「相違点表示オプション」を呼び出します。

これで[OK] をクリックします。
4. 履歴の時の相違点と同様に VSS の表示ツールを使用して XML でソースの差異を表示します。

VSS の差分ツールの場合は修正部分は赤で、追加部分は緑で表示されています。

5.3. 複数ユーザで交互にチェックイン/チェックアウトを行った場合の例
以下に、２ユーザが同じプロジェクトファイルで交互に「チェックアウト -> 修正 -> チェックイン -> 最新
バージョンの取得」と操作する例を記しました。
1. プログラムが３つ、チェックインされて下記のように登録されています。これをユーザ magic1 とユーザ
magic2 の双方からアクセスします。

2. ユーザ magic1： プログラムを３つともチェックアウトします。「チェックアウト一覧」には次のように表示されます。

3. ユーザ magic2：(1) 「プログラム＃２商品登録」の下に「商品登録サブ」を作り、「プログラム＃３商品管理（更新済）」の下にも「商品管理サブ」作ります。

(2) チェックアウト一覧には、ユーザ magic1 でチェックアウトしたものは「他のユーザ」として表示されます。

(3) チェックアウト一覧の中で magic1 がチェックアウトしている「商品登録 [#2]」の位置にカーソルを置いてダブルクリックすると詳細な内容が表示されます。

4. ユーザ magic1：(1) magic1 側はチェックアウトして以降は何のアクションもしていないので、プログラムリポジトリに変化はなく、magic2 の情報も入ってきていません。magic1 で更新を行う前にプログラムリポジトリ（Progs.xml）

がチェックインされていることを確認してください。

(2) カーソルを「プログラム＃４ 顧客管理（更新済）」に置き、F4 でプログラムを 1 行作成し、プログラム名を「新プログラム」とします。このとき、バージョン管理に新しいプログラムを登録しに行くと同時に、現在 magic2 で作業中の情報も取得してきます。

(3) magic2 で更新中のプログラムはチェックインされていないので、更新中という情報だけが反映され、「プログラムソースが見つかりません。」となりますが、プログラムリスト中での位置は確保されます。
更にチェックアウト一覧はとなります。
(4) ここで全てのプログラムに対し、修正を完了してチェックインします。

(5) チェックアウト一覧には更新中の magic2 のリストのみが残ります。

5. ユーザ magic2：(1) magic1 側のプログラムは全てチェックインしてしまったので、magic2 でチェックアウト一覧を見てもmagic2 でチェックアウトしたオブジェクトしか表示されません。

(2) 「プログラム＃３ 商品登録サブ」と「プログラム＃５ 商品管理サブ」をチェックインします。

(3) magic2 でチェックアウトしたオブジェクトはなくなりました。「チェックアウト一覧」で確認します。

(4) ここで、magic1 でチェックインした内容は最新バージョンとして取得できます。最新バージョンの取得はオブジェクト毎にできますが、プログラムリポジトリの場合は各オブジェクトを一括して取得することができます。

(5) 最新バージョン取得のダイアログが出るので、「プログラムの最新バージョンを取得」にチェックを入れます。こうすることでプログラムリポジトリのリストだけではなく、各プログラムの最新バージョンまで取得することができます。

(6) 確認ダイアログ「最新バージョンの結果を取得」が表示され、取得するべき最新バージョンのオブジェ
クトを確認することができます。

(7) プログラムリポジトリを表示させると、全てのオブジェクトが最新のバージョンになったことが確認できます。

6. ユーザ magic1：(1) magic2 でのチェックインは終わったので、最新バージョンの取得を行ってみます。

(2) カーソルをヘッダ行に合わせて「最新バージョンの取得」を行います。

(3) 確認ダイアログでは「プログラムの最新バージョンを取得」にチェックを入れます。

(4) 「最新バージョンの結果を取得」ダイアログで最新バージョンを取得するオブジェクトを確認します。

(5) magic2 でチェックインされたプログラムは最新バージョンとして magic1 に反映されたことが確認できました。

6. オフラインモード作業
Magic uniPaaS のバージョン管理機能では、バージョン管理を行っていたプロジェクトをその管理下からはずして開発することを可能にします。オフラインで開発したプロジェクトは、再びバージョン管理システムに戻すことができます。
重要： オフラインでプロジェクトを修正する場合は、注意して行わないと、プロジェクト全体の不整合が生じる可能性があります。開発グループまたはチームで相互の連絡や打ち合わせを十分に行う必要があります。
オフライン作業をする前の注意事項
z

修正するオブジェクトはオフライン作業をする前に必ずチェックインをしてください。 ユーザがオブジ
ェクトをチェックアウトしたままオフラインに入ると、再接続時にオフライン作業していたと認められず、
オフラインでの修正内容が無条件にオリジナルソースに反映されてます。

z

オフライン作業は原則として、既存にあるオブジェクトを修正することに使用できます。

zプログラムを新規に作成する必要がある場合は、あらかじめバージョン管理下でプログラムリポジト
リに追加してください。

z

オフラインで削除するプログラムがある場合にはバージョン管理下に一度戻って削除してください。

z

各リポジトリの整合性がとれるようにチーム内で十分話し合い、検討してください。

6.1. オフライン作業の基本操作
6.1.1. オフラインに設定
1.

バージョン管理下にあるプロジェクトをオフラインにするには[ファイル] -> [バージョン管理] -> [オフラインに設定] を選択します。

オフラインになりました。
2.

各オブジェクトはチェックアウトをしなくても修正可能になります。

3.

バージョン管理の全てのメニューは無効になります。

6.1.2. 修正
1.

オフラインになった状態で、プログラム＃３「商品管理」を修正します。

2.

この時、修正したオブジェクトファイルにはバックアップファイルが作られます（Prg_3_BCK.xml）

3.

バックアップファイルが作られたオブジェクトは「オフライン変更オブジェクト」で確認することができます。
[ファイル] -> [バージョン管理] -> [オフラインオブジェクト] を選択します。

4.

「オフライン変更オブジェクト」が表示されます。オフラインでのこのダイアログはオブジェクト名だけを表示し、この場合はオフラインにしたプログラム＃３「商品明細 – オフラインで修正」がこのダイアロ
グに表示されます。

5.

修正後、Magic uniPaaS を終了する。
バージョン管理にもう一度接続するには、一度開発エンジンを終了する必要があります。

6.

Magic uniPaaS を再起動し、同じプロジェクトを開きます。
バージョン管理に再接続するための確認ダイアログ「現在のバージョン管理プロジェクトに接続します
か？」が表示されます。

「はい」をクリックします。
7.

「オフライン変更オブジェクト」が表示されます。
バージョン管理システムに再接続する場合に表示されるこのダイアログは *_BCK.xml ファイルを持
つ全てのオブジェクトが表示されます。

＊「オフライン変更オブジェクト」ダイアログの説明
タイトル

内

容

オブジェクト名変更したオブジェクトの名前

チェックアウトユーザ

オフラインで変更したので、ユーザは存在せず、空白になる

競合

バージョンは既に変更済：バージョン管理下で他のユーザが既に変更
し、チェックインした場合
競合なし：バージョン管理下で何も修正されていなければ、「競合なし」になります。

アクション

オフラインで修正した内容をどのようにオリジナルソースに影響させるか。オプションは次の４つ。「なし」、「最新バージョン取得」、「チェックア
ウトと修正内容保持」、「チェックアウトと最新バージョン取得」＊アクションの４つのオプションについて
アクション
なし

意味
オフラインで修正した内容
は、再接続後に決定する。

オフラインでバージョン管理に再接続しの修正内容た時のオブジェクトの状態

保留参照のみ可。チェックイン
はしていない。

最新バージョンの最新バージョンにする。

破棄

チェックイン

チェックアウトとオフラインで修正した内容

反映

チェックアウト

修正内容保持を元に修正を開始する。

チェックアウトと最新バージョンにした状態

破棄

チェックアウト

最新バージョンの取得

から修正を開始する。

取得

以下に４つのアクションの具体的な動きを記します。
①なし：「OK」をクリックする。
バージョン管理に再接続した場合、[ファイル] -> [バージョン管理] -> [オフラインオブジェクト] を選択
すれば、いつでも「オフライン変更オブジェクト」を呼び出し、設定することができる。

このオブジェクトをチェックアウトしようとすると、以下のダイアログが表示されます。

「作業フォルダのファイルを変更しない」：オフラインで修正した内容を反映し、それをチェックアウトして開発を続けます。

「データベース内のファイルで作業フォルダのファイルを置き換える」を選択した場合

オフラインで修正した内容を破棄して、オリジナルソースから最新バージョンを取り、それをチェックア
ウトします。

②最新バージョンの取得：「最新バージョンの取得」を選択して「OK」をクリックすると、「最新バージョンの取得」ダイアログがでます。

「OK」をクリックします。
プログラムリポジトリを開くと、プログラム＃３はオフラインでの修正内容が破棄されて、オフラインに入る前の最新のバージョンに戻っています。このオブジェクトはチェックアウトされていないので、リー
ドオンリーになります。

③チェックアウトと修正内容保持：

アクションで「チェックアウトと修正内容保持」を選択すると、この時点でチェックアウトのための確認ダ
イアログが表示されます。

「OK」をクリックします。

プログラム＃３はオフラインでの修正内容を反映し、かつそのオブジェクトがチェックアウトされて開発を続けることができます。

④チェックアウトと最新バージョンの取得：

この場合もオブジェクトをチェックアウトするので、「オブジェクトのチェックアウト」ダイアログが表示されます。

「OK」をクリックします。
プログラムはオフラインでの修正内容は破棄し、オフラインに入る前の最新のバージョンを取得した
上にチェックアウトを行います。ここから継続して開発を進めることができます。

6.2. オフラインでのプログラム新規作成と削除についてバージョン管理システムではオフライン作業での修正は可能ですが、オフラインの状態でプログラムオブ
ジェクトを新規作成したり削除したりすると、全体の整合性が複雑になり、オンラインに復帰した場合に同期を正しくとることが非常に難しくなりますので、オフライン状態でのプログラムの追加・削除は基本的に行わないでください。
どうしても新規作成が必要な場合には、オフラインで作成したプログラムをエキスポートし、バージョン管理に再接続した後インポートすることでオリジナルソースに加えることができます。

6.2.1. オフラインでのプログラムオブジェクトの新規作成
1.

オフラインモードに入る前にプログラムリポジトリ（Progs.xml）がチェックインされていることを確認します。それから、オフラインモードに入り F4 を押して、プログラムを新規作成します。

2.

すると、以下に警告のダイアログ「作成/削除プログラムは、バージョン管理プロジェクトから手動で追加/削除する必要があります」が表示されます。

「OK」をクリックします。
3.

新規のプログラムが作成されます。

4.

以下のように新しいプログラムを作成します。

5.

このプログラムをエキスポートします。

Magic uniPaaS を終了します。
6.

Magic uniPaaS を再起動して、同じプロジェクトをバージョン管理でオープンします。
確認ダイアログ「現在のバージョン管理プロジェクトに接続しますか？」で「はい」をクリックします。

7.

「オフライン変更オブジェクト」ダイアログが表示され、「プログラム」オブジェクトに関してのアクションを指定します。

この「プログラム」オブジェクトはプログラムリポジトリの目次が変更されたため、Progs_BCK.xml が作成されたので、「オフライン変更オブジェクト」に表示されました。
8.

ここでアクションを「最新バージョンの取得」を選択します。

もしもここで「チェックアウトと修正内容保持」を選択すると実際にはチェックアウトできず、プログラムの内容を修正できない場合があるので、必ず「最新バージョンの取得」を選択してください。

確認ダイアログ「最新バージョンの取得」が表示されるので「OK」をクリックします。
9.

プログラムリポジトリはオフライン作業前の状態に戻ります。

10. エキスポートしたプログラムをインポートします。

「OK」をクリックします。
11. プログラムオブジェクトをインポートすれば、プログラムリポジトリをチェックアウトしなければならない
ので、以下のような「入力時にチェックアウト」ダイアログが表示されます。

「チェックアウト」欄にチェックを入れ、「OK」をクリックします。
12. プログラムリポジトリの「最新バージョン取得」確認ダイアログが表示されます。

「OK」をクリックします。
13. このインポートの一連の作業でチェックアウトをしながら新規プログラムは追加されましたが、それをチェックインするかどうかの確認ダイアログ「バージョンコントロール自動チェックインを行いますか？」が表示されます。

新規作成したプログラムをチェックインした状態で開くには「はい」をクリックしてください。
この後、この新規作成プログラムを継続して修正する必要があれば、「いいえ」をクリックしてください。
14. 新規作成プログラムを追加することができました。

6.2.2. プログラムオブジェクトの削除プログラムオブジェクトの削除はバージョン管理下で行うことをお勧めします。特にチームで開発を行う場
合には、チーム内で十分な検討をしないと整合性に問題が生じる可能性があります。
もしも削除した場合には以下の警告ダイアログが表示されます。

更に「OK」を押すと削除のための確認ダイアログが表示されます。

この警告を無視して削除が行われた場合、バージョン管理再接続時に「オフライン変更オブジェクト」において４つのアクションのいずれを選択しても、その動作は保障されません。

Magic uniPaaS® V1

Microsoft Visual SourceSafe を使用したバージョン管理
Copyright © 2009, Magic Software Japan K.K., All
rights reserved.

第1版

2009 年 4 月 1７日

発行〒151-0053

東京都渋谷区代々木三丁目二十五番地三号

あいおい損保新宿ビル 14 階マジック ソフトウェア・ジャパン (株)