Visual SourceSafe 6.0 入門
MINI SERIES
Visual SourceSafe 6.0
Visual SourceSafe 6.0 は Microsoft 社が開発した、プログラム開発においてグループ開発やバージョン管理といった機能を提供するソフトウェアです。
Microsoft Visual Studio のファミリーとして存在し、Visual C++ や Visual Basic といった Visual Studio ファミリーのソースコードの管理を一手に引き受けてくれます。
SourceSafe を導入すれば、グループでプログラムを作成する場合などに、だれがどのファイルを使用しているかを把握できます。また使用中のファイルには読取専用の属性を与えてくれるため、他の人が使用しているファイルを知らずに書き換えてしまうような心配がなくなります。
またプログラムを書き換えている途中で、どこをどういじったかを忘れてしまった場合、どの部分を書き換えたかを調べることができます。また、まちがってプログラムを書き換えてしまい、元に戻せなくなってしまったような場合も、変更をすべて取り消すことができます。
プロジェクトは SourceSafe のデータベースへと保存されます。
SourceSafe を使用した場合、ユーザは編集したいプロジェクトをそのときだけ一時的に自分の作業領域へとコピーします。そして作業をおえたら再びデータベースへデータを戻すという流れで開発を進めることができます。
データベースで一括管理されるため、最新の変更がサーバに集中するのでバージョンの管理がしやすいのが利点です。
データベースの作成
Visual SourceSafe は、管理するプロジェクトの情報を SourceSafe 独自のデータベースに保存します。まずはそのデータベースの作成から開始します。
【スタート】 メニューの 【プログラム】 → 【Microsoft Visual Studio 6.0】 → 【Microsoft Visual SourceSafe】 へとたどっていき、そのなかにある 【Visual SourceSafe 6.0 アドミニストレータ】 を起動します。
SourceSafe をインストールした直後には、Common という名前のデータベースが用意されています。はじめて Visual SourceSafe アドミニストレータを起動したときには、まずはここに接続されます。
はじめはデータベースを管理するための権限である Admin というユーザにはパスワードが設定されていません。このままだと誰でもこのデータベースへ接続することができてしまうので、かってに利用されないようにパスワードを設定することをお勧めします。
パスワードを変更したい場合は、変更したいユーザ名をクリックして、【ユーザ】 から 【パスワードの変更】 を選択します。
あらかじめ用意されている Common を使用してもいいのですが、今回は練習もかねて Develop という名前のデータベースを作ってみることにします。
【ツール】 → 【データベースの作成】 を選択して、データベースを作成するためのダイアログボックスを表示させます。
まず、データベースを作成するディレクトリを指定します。
【参照】 ボタンを押せば、既にあるディレクトリリストが表示されますので選択しやすくなります。また、選択し終わったパスの最後に \Develop を書き加えておくと管理しやすくなると思います。
今回は、H:\SourceSafe\Develop というパスへデータベースを作成することにして話を進めていきます。
データベースを作成する際の注意事項としては、SourceSafe を使用する人々が読み書き可能なディレクトリへデータベースを作成する必要があるということです。
ここにソースコード等のデータが保存されますので、指定したグループ以外の人に勝手にソースコードを見られないようにしたい場合には、ユーザマネージャを使用して特別にグループを作成し、そのグループにフルコントロールのアクセス権を与えておくといいでしょう。
【 OK 】 を押すとデータベースが自動的に作成されます。
SourceSafe ユーザを登録する
SourceSafe ユーザの登録をするために、「Visual SourceSafe アドミニストレータ」 を使用します。
まず上記で作成した Develop データベースへ接続します。SourceSafe アドミニストレータを起動したら、【ユーザ】 から 【データベースを開く】 を選択します。
利用可能な一覧が表示されます。作成したばかりのデータベースはまだ利用可能として登録されていないので、【参照】 ボタンを押して先ほど作成したデータベースを選択することになります。
先ほどデータベースを作成したフォルダ内にある srcsafe.ini を選択します。今回の例では、H:\SourceSafe\Develop\srcsafe.ini がそれにあたります。
選択を行うと続いてデータベース名の登録です。Develop と入力して 【 OK 】 を押せば、利用可能なデータベースとして Develop が表示されるようになります。
Develop データベースの登録が完了したら、それを選んで 【開く】 をクリックします。
データベースが開かれる直前に、ADMIN ユーザにパスワードが設定されていないことを示すダイアログボックスが現れます。
ADMIN ユーザは Visual SourceSafe の管理を行うユーザ権限で、強い権限をもっていますので、セキュリティを考慮するならばパスワードを設定しておくことをお勧めします。
では、Develop データベースへアクセスすることのできるユーザを作成しましょう。
【ユーザ】 → 【ユーザの追加】 を選択すると、ユーザの登録を行うダイアログボックスが現れます。
ユーザ名とパスワードを書き込んで 【 OK 】 を押すとデータベースへユーザが登録されます。今回は Developer というユーザを登録することにしました。
先ほど、データベースにアクセスする人がアクセスできるフォルダへデータベースを作成する必要があると書きましたが、これは Windows NT へログインしているユーザに関する話です。
SourceSafe の登録ユーザとは無関係なので気をつけましょう。
必要な NT ユーザの権限
SourceSafe のデータベースを利用するには、一般ユーザよりも少し高めの権限が必要です。
それはデータベースの一覧を記憶するレジストリが HKEY_LOCAL_MACHINE\SOFTWARE 内に保存されているためで、Windows 2000 Server において確認してみたところ、この部分は一般ユーザへの使用は許可していないようです。
そのため Server Operators や Administrators といったこの部分へのアクセスが可能なグループに、SourceSafe の利用者を参加させることでデータベースを利用させることができます。
しかし、SourceSafe を利用させるだけなのにこのような強力な権限を与えるのは危険が伴います。
そこで、レジストリエディタを使用して、SourceSafe のレジストリにのみ、一般ユーザでもアクセス可能に設定する方法を紹介します。
【スタート】 → 【ファイル名を指定して実行】 を選択して、そこに regedt32 と入力してレジストリエディタを起動しましょう。
開いたウィンドウの中から、HKEY_LOCAL_MACHINE という題名のウィンドウを見つけ、【 SOFTWARE 】 → 【 Microsoft 】 → 【 SourceSafe 】 とたどっていきます。
そして 【 SourceSafe 】 を選択した状態で、システムメニューの 【セキュリティ】 から 【アクセス許可】 を選択します。
すると、どのユーザ/グループにアクセス許可を与えるかの設定になりますので、SourceSafe を使わせたいユーザまたはグループを追加します。
アクセス権としては、「読み取り」 だけでなく、「フルコントロール」 にもチェックを入れます。
こうすることで、SourceSafe のデータベース利用を安全に許可することができます。
Visual C++ 6.0 でプロジェクトを追加する
ではさっそく、実際にデータベースへプロジェクトを追加してみましょう。
練習として Visual C++ 6.0 で新たに作成したプロジェクトを SourceSafe へ追加してみることにします。
まずなんでもいいので Visual C++ でプロジェクトを作成してください。
今回は、MFC AppWizard (exe) を利用して、SSTEST という名前のアプリケーションを作成したことにします。
プロジェクトの作成が終わったら、さっそく SourceSafe のデータベースへ登録してみましょう。
システムメニューの 【プロジェクト】 から 【ソース管理】 を選択します。その中に、【ソース管理へ追加】 という項目がありますので、それを選択します。
すると SourceSafe のデータベースへ接続するためのダイアログが現れますので、利用するデータベースを選択します。
今回は以前に作成した Develop というデータベースへ接続することにします。
データベースとして Develop を選択してユーザ名とパスワードの入力が完了すると、プロジェクトを追加するためのダイアログボックスが表示されます。
プロジェクト名は Visual C++ でつけたプロジェクト名と同じものが指定されています。ここは特に変更する必要はないでしょう。
【作成】 をクリックして SourceSafe にプロジェクトを作成します。すると下の領域の $/ の中に SSTEST というプロジェクトが作成されるので、それを選択した状態で 【 OK 】 をクリックします。
するとどのファイルを SourceSafe で管理するかをたずねられます。ディフォルトではすべてのファイルにチェックが入っていると思います。特に問題がなければ、すべてのファイルを登録しておきましょう。
以上で SourceSafe へのプロジェクトの登録は完了です。
登録時の注意点としては、登録前にプログラムが保存されていたフォルダが、SourceSafe の作業フォルダになるということです。
新しいバージョンのファイルを取得すると、作業フォルダ内のファイルが更新されます。
Visual C++ 6.0 へプロジェクトを読み込む
では次に、Visual C++ から SourceSafe のプロジェクトを呼び出してみましょう。練習ということで、とりあえず一度 Visual C++ を終了してください。
再び Visual C++ を起動します。
さあ、以前に作成した SSTEST を開いてみましょう。システムメニューの 【ファイル】 から 【ワークスペースを開く】 を選択します。
そして現れたダイアログの右下に 【ソース管理】 というボタンがありますので、それをクリックします。
するとそろそろおなじみの、SourceSafe へ接続するためのダイアログボックスが現れますので、接続するための情報を正確に入力して 【 OK 】 を押します。
正常に SourceSafe に接続できると、「Visual SourceSafe プロジェクトからデータベースを作成」 という、なんだか手順を間違えてしまったかのようなミスマッチな題名のダイアログボックスが現れます。
ここで目的のプロジェクトを選択して 【 OK 】 ボタンを押します。
今回は依然井作成した SSTEST というプロジェクトを選択します。すると、上記のデータベースを作成するフォルダという部分に書かれた場所へ、プロジェクトが読み込まれます。
ただし、今回の例のとおりに操作を行っていると、「チェックアウトされているファイルがあるが、置き換えますか」 といったような内容のダイアログボックスが現れると思います。
これは、以前に Visual C++ を閉じるときに、ファイルがチェックアウト(編集可能)の状態に置かれた状態であったためです。
プロジェクトを SourceSafe へ追加する再に、【チェックアウトの状態を保持】 といった項目にはじめからチェックが入っていたので、追加直後の状態で 「チェックアウト」 になっていました。
「チェックアウト」 状態は、言い換えると 「編集中」 の段階で、まだ最新バージョンとして SourceSafe へアップロードしていない状態です。
今回のプロジェクトを開く作業は SourceSafe Server にある最新のプロジェクトを取得する作業なので、もしもチェックアウト中の作業領域のファイルを上書きしてしまうと、変更した部分が消されてしまう可能性があるので、このようなメッセージが現れます。
SourceSafe にあるデータそのものにしたい場合には 【置換】、それぞれの相違点を混ぜ合わせたい場合は 【マージ】、作業中のデータをそのまま使用する場合、つまり以前のチェックアウト時の変更をそのまま活かしたい場合には 【変更しない】 を選択します。
今回の場合は別に何もしていないのでどれを選択してもいいのですが、とりあえず一般的な 【変更しない】 を選択することにしましょう。
このとき、【すべての項目に適用】 にチェックを入れておけば、すべてのファイルに対して 【変更しない】 を選択したことになります。
すると、SourceSafe からプロジェクトが復元されます。
あとは復元されたワークスペース、今回の場合は SSTEST.dsw を選択して 【開く】 を選択すればプロジェクトが開かれます。
チェックインとチェックアウト
さて、前節でチェックアウトに関する話が出てきたので、SourceSafe において重要となる ”チェックイン” と ”チェックアウト” について紹介しようと思います。
”チェックアウト”
SourceSafe のデータベースから、編集作業を行うためにデータを取り出すことをいいます。取り出されたデータは作業フォルダに読み込まれます。
なお、データベースから取り出して編集可能な状態にあることを、”チェックアウト状態” といいます。
チェックアウト状態にあるファイルは、SourceSafe によって記録されています。他のユーザがそのファイルをチェックアウトしようとすると、そのユーザには他のユーザがチェックアウトしていることが伝えられ、編集許可が下りません。
”チェックイン”
チェックインはチェックアウトとは逆に、チェックアウトして変更を加えたファイルを再び SourceSafe のデータベースへ返却することを言います。
この作業を行うことによって、SourceSafe へ変更が完了したファイルを転送し、チェックアウト状態を解除することができます。
ただし、チェックインを行う際に 【チェックアウト状態を保持する】 というオプションを指定すれば、SourceSafe データベースの内容を更新するだけで、チェックアウト状態をそのまま継続することができます。
Visual C++ では、チェックイン/チェックアウトの状態を視覚的に見ることができます。
Visual C++ のワークスペースのリストです。そのうちの Class View の部分です。
クラス名等の名前の左側にチェックがついている場合には、それにかかわるファイルがチェックアウト状態にあることを意味します。
逆にチェックがついていなければ、そのファイルはチェックインされている状態です。
Visual C++ の場合、チェックの色に ”赤” と ”黒” の二通りがあります。
クラスを構成するためのファイルは ”ヘッダーファイル” と ”ソースファイル” とに分かれています。
”赤” ならば、ヘッダーファイルとソースファイルの両方がチェックアウト状態にあることが示されています。
”黒” ならば、ヘッダーファイルかソースファイルのどちらかがチェックアウト状態にあることを示しています。
では実際にチェックインを行ってみましょう。
練習通りだと、すべてのファイルがチェックアウト状態にあると思います。そのなかからチェックインしたいクラス名を選択して右クリックをしてみてください。
するとポップアップメニューが現れ、そのなかに 【チェックイン】 という項目が見つかると思います。チェックインを選択すると、続いてどのファイルをチェックインするかをたずねるダイアログボックスが現れます。
ここで2つのファイルがチェックインの候補に上がると思います。これは Visual C++ がクラスを2つのファイルによって構成しているためで、ここではその2つのファイルが表示されています。
通常は2つともチェックインして問題ないので、ここでは両方にチェックが入った状態で 【 OK 】 を選択しましょう。
これでチェックインは完了です。Class View のチェックが消えているかどうかで、ちゃんとできたかどうかを確認することができます。
つづいてチェックアウトをしてみましょう。
たった今、チェックインをおこなったクラスを選択して右クリックをしてみてください。ここで今度は、【チェックアウト】 を選択します。
するとチェックインの時と同様に、どのファイルをチェックアウトするかどうかをたずねられます。チェックアウトしたいファイルを選択して 【 OK 】 を選択すれば完了です。
変更点の確認と、変更の取り消し
Visual C++ では、SourceSafe の機能を使って簡単にファイルの変更点を調べることができます。
変更点を調べるには、そのファイルがチェックアウト状態にある必要があります。比較の対象が、編集中のファイル(チェックアウトしたファイル)と SourceSafe データベースにあるファイル(チェックインされているファイル)であるので当然といえば当然ですが。
ではどのようにすれば変更点を調べられるかを紹介しましょう。
比較したいチェックアウト状態のファイルのうえで右クリックをして、【チェックイン】 を選択します。すると以前でも紹介したチェックインを行うためのダイアログボックスが現れます。
その右下あたりに、【相違点】 というボタンがあると思います。ファイルのリストからひとつだけファイルをクリックすると、このボタンが押せるようになります。
【相違点】 ボタンを押すと、相違点を表示するための詳細オプションを設定するダイアログが現れます。ここでいろいろとカスタマイズを行うことができますが、単純に 【 OK 】 ボタンを押すだけで大丈夫です。
なにか変更点が見つかった場合には、実際にどこが変更されているかを示すダイアログが現れます。
左側の領域には SourceSafe にチェックインされているファイルの内容が表示され、右側に現在チェックアウト中の作業ファイルの内容が表示されます。
SourceSafe を使用すれば、Visual C++ で変更点を確認するばかりでなく、チェックインされていた状態まで簡単に変更を取り消すことができます。
編集を取り消したいファイルの上で右クリックをします。
そして現れたポップアップメニューの 【チェックアウトの取り消し】 を選択します。Visual C++ の場合、さらにどのファイルを取り消したいのかたずねられますので、取り消しを行いたいファイルを選択して 【 OK 】 をクリックします。
作業中のファイルとサーバ側のファイルとに相違点が見つかった場合、本当に取り消していいかを尋ねるダイアログボックスが現れます。
念のため間違っていないか確認してから返答しましょう。
チェックアウトの取り消しを行うと、チェックアウト状態は解除されて、そのファイルは最後にチェックインされた状態にまで戻されます。
共有フォルダへ VSS クライアントをおく場合の補足
Visual SourceSafe Server を用意して複数のクライアントに SourceSafe を利用する場合、ライセンスの範囲で、共有フォルダをつかって SourceSafe クライアントを配布することが出来ます。その場合に必要となるファイルは、SourceSafe をインストールしたフォルダ内の次のファイルを共有フォルダへ配置します。
- NETSETUP.EXE
- NETSETUP.LST
- netsetup.x86 (フォルダ)
あとはこの共有フォルダを SourceSafe ライセンスを持ったユーザへ公開すれば、クライアントプログラムをネットワーク経由でインストールすることが出来るようになります。
SourceSafe データベースも、利用するユーザがアクセスできる共有フォルダへ配置しておきます。そして接続の際には、NetBIOS 名を使って、利用したいデータベースの srcsafe.ini ファイルを指定すれば接続できます。(\\コンピュータ名\共有フォルダ名\データベースへのパス\srcsafe.ini というような感じです)