SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

japan.internet.com翻訳記事

Visual Studioと.NET開発者のためのSubversion/TortoiseSVN入門

ソース管理ツール「Subversion」と「TortoiseSVN」の環境構築手順

セットアップの後処理

 プロジェクトをローカルマシンに取得した後で、プロジェクトの設定が必要な場合があります。例えば、ASP.NETのWebアプリケーションのプロジェクトであれば、仮想ディレクトリの登録、ディレクトリのアクセス許可の設定、スクリプトマップの追加などが必要になることがあります。

 また、リポジトリの構成や内容によっては、プロジェクトで必要な依存ファイルが入っていないことがあります。プロジェクトで必要なサポートアセンブリは、他のユーザーができるだけ簡単に取得できるようにしておくのがよいでしょう。私の場合は、各ソリューションのリポジトリに「SupportAssemblies」というフォルダを作成し、プロジェクトで必要となる外部アセンブリをまとめて格納しておくことがよくあります。そして、各プロジェクトでそれらのアセンブリを関連付けておきます。こうすれば、全開発者が同じバージョンの外部アセンブリを利用することになります。

 ただし、GACのコンポーネントの場合には話が少々ややこしくなり、各ユーザーのマシンで適切なコンポーネントが登録されている必要が出てきます。私はこの場合も、ライセンスやその他の面で可能であれば、上記と同様に「SupportAssemblies」フォルダでコントロールを配布するという方法を選び、各開発者がスムーズに作業を進められるようにします。依存関係についてはドキュメントにまとめ、プロジェクトに「Readme」ファイルを同梱しておくことをお勧めします。

TortoiseSVNによるSubversionの主な操作

 ここまでで、ソース管理による作業の準備が整いました。前述のとおり、Subversionは「コピー・修正・マージ」モデルですので、明示的に指定しない限りはファイルのロックは行われず、ソースファイルは自由に修正できます。

 基本的には、ファイルの編集を普通に行えば、Subversionが変更を把握してくれます。変更を加えたファイルかどうかは、TortoiseSVNのエクスプローラ統合機能で確認できます。すなわち、ファイルのアイコンに赤色の感嘆符が付いていれば、自分が加えた変更をサーバに反映していないという意味です。

 この感嘆符は、ファイルだけでなくフォルダにも表示されます。配下に未更新の変更があるフォルダという意味です。また、感嘆符の意味を勘違いしないよう注意してください。別のユーザーが修正したという意味ではなく、あくまで自分自身が修正したという意味であり、コミットが必要であることを表しています。

 Subversionサーバに変更内容を反映して同期するには、図8の[SVN Commit]を選択します。図11のようなダイアログボックスが表示され、コミット処理で更新される全ファイルをその場で確認できます。また、対象外とするファイルを指定することもできます。例えば、「web.config/app.config」や、特別なビルド手順があるときのプロジェクトファイルなど、あえて更新しないファイルがある場合に役立ちます。

図11 修正を加えたファイル。変更を加えたファイルには赤色の感嘆符が表示されます。コミットが必要という意味です
図11 修正を加えたファイル。変更を加えたファイルには赤色の感嘆符が表示されます。コミットが必要という意味です

 コミットでは、自分が加えた変更をサーバのリポジトリに反映します。一方、他のユーザーがリポジトリにコミットした変更をローカルに受信するには、個別ファイルまたはフォルダに対し、[SVN Update]を明示的に実行します(図12を参照)。

図12 変更されたファイルの確認。[SVN Update]では、他ユーザーが変更したリポジトリ内のファイルを確認および選択できます
図12 変更されたファイルの確認。[SVN Update]では、他ユーザーが変更したリポジトリ内のファイルを確認および選択できます

 [SVN Update]では、サーバ側の最新のファイルの内容が読み込まれ、変更が加わっている部分がローカル側のファイルに自動的にマージされます。通常は、更新に関する警告や通知は表示されませんが、競合がある場合にはエラーとなり、競合を解決しないと更新は完了しません。

 大抵は、まず更新を実行し、プロジェクトを再コンパイルしたうえで、自分の修正をリポジトリにコミットするのがよいでしょう。こうすれば、マージ後の内容でビルドが失敗しないことを確認できます。また、一般論としては、少し修正を加えるごとにこまめにコミットし、リポジトリをできるだけ最新の状態に維持する方がよいでしょう。

注3

 チェックアウトの時間を短めにするほど、競合も少なくなります。

 リポジトリ側のファイルのいずれかのバージョンと、ローカル側のファイルとの違いを確認したい場合には、両者を照合して比較できる機能があります。[Check for Modifications(変更をチェック)]と[Diff]の2つのコマンドです。いずれも、変更の有無を確認できます。

 [Check for Modifications]コマンドでは、ローカル側とサーバ側とで内容に違いがあるすべてのファイルが一覧表示されます。いずれかのファイルをクリックすると、差分ビューアが表示されます。TortoiseSVNに標準装備された差分確認ツール(図13を参照)では、ローカル側とサーバ側のファイルの内容が横並びで表示され、違いを確認できます。

図13 差分の確認。標準装備の差分確認ツールでは、ローカル側のファイルとリポジトリ側のいずれかのバージョンとの違いをすばやく確認し、ローカルのファイルを更新できます
図13 差分の確認。標準装備の差分確認ツールでは、ローカル側のファイルとリポジトリ側のいずれかのバージョンとの違いをすばやく確認し、ローカルのファイルを更新できます
注4

 図13は標準装備の差分確認ツールですが、Beyond Compareなど、別のツールを指定することもできます。

次のページ
SubversionとVisual Studio

この記事は参考になりましたか?

japan.internet.com翻訳記事連載記事一覧

もっと読む

この記事の著者

japan.internet.com(ジャパンインターネットコム)

japan.internet.com は、1999年9月にオープンした、日本初のネットビジネス専門ニュースサイト。月間2億以上のページビューを誇る米国 Jupitermedia Corporation (Nasdaq: JUPM) のニュースサイト internet.comEarthWeb.com からの最新記事を日本語に翻訳して掲載するとともに、日本独自のネットビジネス関連記事やレポートを配信。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

Rick Strahl(Rick Strahl)

ハワイのマウイ島にあるWest Wind Technologies社の社長。同社はWebおよび分散アプリケーションの開発とツールを専門にしており、Windowsサーバー製品、. NET、Visual Studio、およびVisual FoxProに主軸を置いている。RickはWest Wind Web Connection、West Wind Web Store、およびWest Wind HTML Help Bui...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/3114 2008/10/30 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー