Visual Studio .NETによるチーム開発事始め Visual SourceSafeを使いこなすデジタルアドバンテージ2004/02/21 |
|
|
多重チェックアウト・モードでチェックイン
チェックアウトしたファイルは編集して最終的にはチェックインするのだが、その編集作業中にほかの開発者が先にチェックインを行い、VSSデータベース上のソース・ファイルが書き換わってしまっていると仮定しよう。
すると、いまチェックインしようとしているファイルは、ほかの開発者によって変更される前のソース・ファイルを元に編集したので、「いま編集中のコード」と「VSSデータベースのコード」では不整合(コンフリクト)が発生する。このコンフリクトとは、具体的には「いま編集中のコード」にほかの開発者が追加したコードが含まれていないことを指している。
よって、「編集中のソース・ファイル」をそのままチェックインして「VSSデータベース上のソース・ファイル」を上書きすると、ほかの開発者がソース・ファイルに加えたコードを消失してしまう可能性がある。それを避けるために、この2つのソース・ファイルを比較して、マージ(統合)するという作業が必要になるのだ。
このマージ作業を行うにはまず、マージしたいソース・ファイルを[ソリューション エクスプローラ]上で右クリックしてコンテキスト・メニューを表示し、そのメニューの中から[最新バージョンの取得]を選択する(なお、VS.NETにおける「最新バージョン」というのは、本稿での「最新のリビジョン」と同じ意味になる。VS.NETで「最新バージョン」という用語が用いられている理由は、恐らく「最新バージョン」という言葉が「最新のもの」を意味する最も一般的な用語だからだと思われる。しかし、バージョンとリビジョンは明確に区別されるべきものなので、本稿では用語を使い分けている。なおその違いについては、本連載で解説済みなので、そちらを参照されたい。以後、何度も「最新バージョン」と出てくるが、混同しないように注意していただきたい)。
ソース・ファイルの最新バージョンの取得 | ||||||
編集したファイルをチェックインしても不整合(コンフリクト)が起きないようにするため、事前に最新のリビジョンのソース・ファイルを取得してマージ作業を行う。 | ||||||
|
ソース・ファイルがチェックアウトされた状態でこれを実行すると、次の確認メッセージが表示される。
最新ファイルの取得時の確認メッセージ | ||||||||||||||||||
ソース・ファイルがチェックアウトされた状態で[最新ファイルの取得]を実行するとこのメッセージが表示される。 | ||||||||||||||||||
|
この確認メッセージでは、基本的に[マージ]を実行して、「編集中のソース・ファイル」と「VSSデータベース上の最新のファイル」をマージ(統合)する。なお、ここで[置換]を選ぶと、VSSデータベースにある最新のファイルで編集中のファイルを上書きしてしまうことになる。また、[変更しない]を選択すると、VSSデータベースの最新のファイルを取得できない。
[マージ]を実行すると、次の[データベース内のバージョン を ローカル バージョン にマージ]ダイアログが表示される。
このダイアログでソース・ファイルのマージ(統合)作業を行う。「VSSデータベース内のソース・ファイル」と「ローカルにあるソース・ファイル」をクリックで選択して、最終的に残すコードを決定できる。もちろんマージするコードを編集して自由にコードを書き直すことも可能だ。
マージ・ファイルが確定したら保存してダイアログを閉じる。すると次に、以下の確認メッセージが表示される。
マージ作業完了を確認するメッセージ | |||||||||
コンフリクトを適切に解決してマージできたかどうかを確認する。 | |||||||||
|
ここで[はい]を選択すれば、マージが完了して、[最新バージョンの取得]の処理は終了する。マージしたソース・ファイルはまだ一度もビルドもテストもされていないコードなので、必ずここでビルドや単体テストを行い、正常に動作することを確認した上でチェックインを行うようにするべきだ。
多重チェックアウトでチェックインを行う手順は、基本チェックアウトの場合のチェックインと同じだ。よって詳しくは前回の記事を参考にしてほしい。
このチェックインの時点で、再度「VSSデータベースのソース・ファイル」に変更があって、コンフリクト(不整合)が発生した場合には、最新バージョンの取得の処理でも表示された[データベース内のバージョン を ローカル バージョン にマージ]ダイアログが表示される。この場合は、取りあえずチェックインをキャンセルしていただきたい。
なぜなら、そのままマージしてチェックインしてしまうと、ビルドや単体テストを一度も行っていないソース・ファイルをVSSデータベースに格納してしまうことになるからだ。これは問題である。例えば、ビルドできないソース・ファイルを、チームで共有するVSSデータベースに格納してしまうと、そのファイルを取得したチーム・メンバー全員がビルドできない事態に陥ってしまい、チーム全体の開発がストップしてしまうだろう。
チェックインのキャンセルを行った場合には、もう一度[最新ファイルの取得]を実行してマージ作業を行う。その後でもう一度チェックインを行うとよい。
以上のように、多重チェックアウトはファイルをマージ(統合)する必要があるため、マージしたコードがコンフリクトを起こさないか、正しく動作するか、ビルドできるかを必ずチェックする必要がある。このため、多重チェックアウト機能を利用する場合には、開発チーム内で編集するソースについてよく話し合い、入念に修正内容を確認した上で、ソース・ファイルをマージしなければならない。よって筆者としては、多重チェックアウトよりも基本チェックアウトをお勧めする 。
INDEX | ||
Visual Studio .NETによるチーム開発事始め | ||
Visual SourceSafeを使いこなす | ||
1.多重チェックアウト・モードでのチェックアウト | ||
2.多重チェックアウト・モードでのチェックイン | ||
3.ソース管理への追加と削除 | ||
4.バージョン・ラベルの設定と取得 | ||
「Visual Studio .NETによるチーム開発事始め」 |
- 第2回 簡潔なコーディングのために (2017/7/26)
ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている - 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう - 第1回 明瞭なコーディングのために (2017/7/19)
C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える - Presentation Translator (2017/7/18)
Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
|
|