Git Source Control Providerの使い方

Visual Studio Advent Calendar 3日目です。Keiji KAMEBUCHI さんからの引き継ぎです。

今回はVisual Studioのソリューション・プロジェクトをGitを使ってバージョン管理をするためのGit Source Control ProviderであるGit Source Control Provider(gitscc)の使用方法についてまとめます。

Git Source Control Provider(Codeplex)

Source Control Providerとは

Source Control ProviderはVisual Studioに於いて、ソースコードのバージョン管理をする仕組みを提供するアドインやVS拡張のことです。

基本的にVisual Studioに対して共通のインターフェイスをもとに、リポジトリからのチェックアウト、コミット、差分比較の機能などを提供する機能です。

Source Control Providerは大きく2つの種類に分けることができます。一つ目はVSのもつ標準的なUIを使用し、バージョンコントロールの役割に徹するSource Control Pluginで、もうう一つのほうがVS 2005移行に登場したSource Control VSPackageという仕組みで、TFS(恐らく)やgitsccはこちらの形式で作成されています。こちらはカスタムのUIを作成できる他、ファイルの種類に合わせてコンテキストメニューの内容を変更できたりなど、より密接にVSに統合することができます。

参考:Source Control Integration Overview

Git Source Control Providerの入手とインストール

CodeplexからGitSccProvider.vsixファイルを入手し、ダブルクリックでインストールすることもできますし、VSのツールメニューにある拡張機能と更新プログラムからインストールすることができます。

SnapCrab_拡張機能と更新プログラム_2012-12-2_22-0-23_No-00
(上図はインストール後の状況)

また、gitsccを使用するには事前にGit For Windowsの入手と最低限のセットアップが必要です。

Git for Windowsの入手やインストール作業の詳細については、このblogのVisual StudioでGitを使用できるようになるまでを参考にしてください。

またCygwin版のGitは使用できません。

gitsccの設定

GitをWindowsで使用できるようになるまで準備ができ、gitsccのインストールも終了したら、gitsccの設定を行います。

gitsccの設定は、ツールメニューからオプションを選択し、下図の位置でGit Source Control Providerを選択します。

SnapCrab_オプション_2012-12-2_22-7-26_No-00

次に詳細設定を行うためにGit Source Control Provider Optionsを選択します。

SnapCrab_オプション_2012-12-2_22-5-24_No-00

設定項目

Path to Git for Windows git.exeまでのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、msysGitなどをインストールしている場合には変更します。
Path to Git Extensions Git Extensionsのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、インストール時にインストール先を変更している場合には変更します。
Do not expand Git Extensions commands gitsccではVSからGit Extensionsのコマンド(ツール)を呼び出せるのですが、それを使用したくない場合には、ここにチェックを入れます。
Path to TortoiseGit TortoiseGitのパスを指定します。デフォルトでは標準的なインストール先のパスが指定されているので、インストール時にインストール先を変更している場合には変更します。
Do not expand TortoiseGit commands gitsccではVSからTortoiseGitのコマンド(ツール)を呼び出せるのですが、それを使用したくない場合には、ここにチェックを入れます。
Use Visual Studio 2012 Diff Window Visual Studio 2012専用ですが、Visual Studio 2012が内蔵するDiff Windowsを差分表示に使用したい場合には、ここにチェックを入れます。
Path to external diff tool(optional, by default diffmerge.exe is used) サードパーティーのDiff/Mergeツール(WinMergeなど)を使用する場合に、それへのパスを設定します。また、ここで設定されたツールに対して、第1引数に比較対象のファイルのパス(変更前のソース)、第2引数に現在のファイルが渡されます。
Use TortoiseGit Style icon set ソリューションエクスプローラーで編集されていたり、追加であったり、編集されたことを示すファイルに付く小さなアイコンを、VS標準のものから、TortoiseGitと同じようなものに変更します。
Disable auto-refresh このチェックを入れるとソースコードの変更ステータスを自動的に更新しなくなります。(対象を右クリックしてGit Refreshの選択が必要になる。参照:http://gitscc.codeplex.com/wikipage?title=Auto%20Refresh&referringTitle=Documentation)
Disable auto switch to this plug-in for Git controlled projects すでにGit管理下にあるプロジェクトを開いた時に自動的にこのプラグインにスイッチさせたくない場合にはこれをチェックします。
Disable UTF-8 file names(Git 1.7.10+) gitsccは標準では非ASCIIな文字が使用されているファイル名をUTF-8に変換し、エスケープ表記にしたファイル名でGitのレポジトリに保存しますが、このチェックを入れるとその変換を行いません。Git for Windows 1.7.10でUNICODEファイル名対応したことを受けての処理ですが、それ以降でも日本語のファイル名を使用する場合Git for Windows 1.7.10移行の環境でもチェックがあると正しく動作できないので、チェック入れないでください。

 

使用方法

リポジトリの作成方法

ソリューションを単位として、Gitのレポジトリをそのディレクトリに作成することができます。

ソリューションかそれ以下のファイルを選択し、右クリックしてコンテキストメニューを表示させます。表示させたら星印のアイコンのCreate Git Repositoryを選択します。

image

レポジトリが追加されると、ソリューションエクスプローラの表示が以下のように変更となります。

image

ステージング(add)

レポジトリができたので、ファイルをステージングします。

ファイルのステージングを行うには、下図のようにソリューションエクスプローラで対象を右クリックして下図のようにGit pandind Changesを選択し、Pending Changesウインドウを表示させます。

image

SnapCrab_gtisccTest_2012-12-2_22-46-55_No-00

Changed filesの中からステージングしたいファイルを選択し(チェックではなくリスト選択)、コンテキストメニューからStagingを選択します。

SnapCrab_gtisccTest_2012-12-2_22-49-2_No-00

右側のDiffには前回コミットからの差分内容(Diffコマンド結果)が表示されます。

ステージンが正しく実行されると下図のようにStatusがNewからAddedに変更します。

SnapCrab_gtisccTest_2012-12-2_22-51-46_No-00

ここまでをコマンドラインで確認すると以下のようになります。同じようにProgram.csだけがステージングされています。

SnapCrab_Console2_2012-12-2_22-52-59_No-00

コミット

ステージンが完了したら、ファイルにリポジトリをコニットしましょう。

また、gtsccのGit Pending Changesウインドウを使用する場合、ステージングなしで、いきなりコミットすることも可能です。

コミットを行うには、まずコミット対象となるファイルにチェックを入れます。表示されているもの全部を選択する場合には、リストのヘッダにあるチェックボックスにチェックを入れます。そして、Commentsにコミットコメントを記入する。日本語の入力も可能です。

SnapCrab_gtisccTest_2012-12-2_22-58-9_No-00

一番上のCommitをクリックして、コミットを実行します。

コミット後のコンソールでのステータス表示です。先ほどステージングされていないファイルを含めてコミットされたのが確認できます。

SnapCrab_Console2_2012-12-2_22-59-14_No-00

ついでにログも見てみましょう。日本語のコメントも大丈夫ですね。

SnapCrab_Console2_2012-12-2_23-1-40_No-00

ログ、Brame、ブランチ

gitsccにもログ(ヒストリ)表示機能があります。

ソリューションエクスプローラーのコンテキストメニューからGit Historyを選択します。

image

以下の様なウインドウが画面いっぱいに表示されます。ウインドウ上部をクリックし、そのままドラッグするとウインドウサイズを全画面から解除できます。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (master)_2012-12-2_23-6-15_No-00

コミット単位で上のような箱が表示され、その中にコミットコメントが表示されます。また、箱をクリックすることで、コミットの詳細を確認することができます。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (master)_2012-12-2_23-8-8_No-00

参考:http://gitscc.codeplex.com/wikipage?title=View%20History&referringTitle=Documentation

ブランチを作成してチェックアウトを行うにはGit Historyウインドウから操作する方法があります。

ブランチのもととなるコミットを右クリックし、New Branchを選択します。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (master)_2012-12-2_23-11-41_No-00

git branchというダイアログが表示されるので、ブランチ名を入力し、OKをクリックします。

SnapCrab_git branch_2012-12-2_23-13-21_No-00

ブランチが追加されました。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (master)_2012-12-2_23-14-16_No-00

追加したブランチに変更(checkout)したい場合には、チェックアウト先のブランチカラコンテキストメニューを選択しcheckoutを選択します。

image

これでチェックアウトされました。また、現在どのブランチで作業しているかはソリューションエクスプローラーのコンテキストメニューから確認することができます。(下図赤枠内)

image

コンソールでも確認してみましょう。

SnapCrab_Console2_2012-12-2_23-21-1_No-00

ここからソースコードを編集し、コミットするとGit Historyの表示は以下のようになります。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (w121202)_2012-12-2_23-23-32_No-00

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (w121202)_2012-12-2_23-23-44_No-00

Brameを表示させるにはBrameのチェックボックスにチェックを入れます。

SnapCrab_ddocumentsvisual studio 2012ProjectsgtisccTest (w121202)_2012-12-2_23-50-34_No-00

また、ブランチの作成や切り替えの別の方法として、Git Pending Changesウインドウから行う方法があります。

下図赤枠のSwitch Branchをクリックします。

image

次のようなウインドウが表示されるので、切り替えたいブランチを選択するか、Create a branchを選んでブランチを作成して切り替えます。(chckoutコマンドの-bオプション)

SnapCrab_Switch (checkout) branch_2012-12-2_23-27-29_No-00

他のGitツールとの共同作業

gitsccにはpullやpushやcloneなどの機能がありません。これらのgitsccが持っていない機能についてはGitBash、Git ExtensionsやtortoisGitの機能を呼び出すことで、VSからそれらの機能を使用することができます。

ソリューションエクスプローラーの右クリックからGitを選択すると、その下位メニューとしてそれが選択できるようになっています。

image

例えば、Git Bashを選択すると、Bashのコンソールが起動します。コンソールではソリューションのディレクトリがpwdになっているはずです。

image

SnapCrab_MINGW32ddocumentsvisual studio 2012ProjectsgtisccTest_2012-12-2_23-44-11_No-00

まとめ

だいたい使い方はお分かり頂けたでしょうか。基本的な操作はgitsccから可能ですし、それ以上の操作(他のレポジトリとのやり取りなど)については、Git Bashを起動してGitのコマンドを叩いてしまうか、Git ExtensionsたtortoiseGitのコマンドを呼び出してしまえば操作が可能です。

明日

あすはりばてぃさんの当番です。それではりばてぃさんハリキッテどうぞ!!

4 thoughts on “Git Source Control Providerの使い方”

コメントを残す