チームが遠くに分離されているとき、マイクロソフトのVisual SourceSafeやTeam Foundation Serverのような中央ソース管理システムは、急激に魅力を失う。それらの場所では、多くの開発者が、分散ソース管理システムに切り替える。.NET開発者に最も人気なのは、元々はLinuxカーネル開発者のためにLinus Torvalds氏によって作成されたGitであろう。
Gitを使用したときの問題点は、コマンドラインベースであることである。.NET開発者は、IDEで定型作業を強要されたときにいらいらして、シェルで作業することはある。Sun Yiyi氏のGitソース管理プロバイダは、Gitの採用に重要なパーツである。Sun Yiyi氏は以下のように記述する。
Visual Studioユーザーは、ソリューションエクスプローラで、ファイルのステータスを見たいと考えます。そうでなければ、ファイルがどんなソースコード管理システムで管理されているのか気づくことはないでしょう。私たちは、SourceSafe、Team Foundation Server、Subversion、Mercurialなどを使用しているときには、これを目にしています。私たちは、Gitで同じような経験をしたいと考えました。わたしは、インターネット上でなにも見つからなかったため、自分自身で作ることにしました。
アイディアは、Gitのファイルステータスを表示し、VSSとTFSができることと近い経験ができるようにすることです。私は、チェックイン(コミットされた/トラックされた)ファイルに青い鍵アイコン、編集されたファイルに赤いチェックアイコンを維持しました。また、十字とiの2つの新しいアイコンを追加しました。これらは、新規状態とステージ状態を表します。これらは、Gitだけに適用されます。
このプラグインでGitに管理されたソリューションを開くと、それらは明確に、新規、トラック済み、変更済み、ステージ済みがわかるようにマークされます。正しいブランチで作業するように、現在のブランチ名も表示されます。ソースを管理している感じは戻ります。
私は実装すると決めた2つのソース管理関連の機能があります。それは、「前回のコミットからのファイル比較」と「ファイル変更のやり直し(最後のコミットからファイルを復元)」です。
でも、これは開始点に過ぎません。私は、見た目がよいものを手に入れたに過ぎません。なぜ、私は新しいローカルリポジトリを作成するために、右クリックしてGit bashを起動、git initをタイプしないとならないのか考えはじめました。なぜ右クリックして、「新しいリポジトリを初期化する」を選択できないのか?
少なくても今は、Gitの機能をGit Extensionのような他のツールに置き換えたり、重なったりすることを意味しません。履歴を閲覧する、チェックイン/アウト、ブランチの切り替えのような機能は、Git BashとGit Extensionに残されていくでしょう。ゆくゆくはinitやcommitのような一般的に使われる機能を慎重に追加していくつもりです。しかし、GitとGit Extensionの入り口は、いつでもそこになるでしょう。
TFSの代わりにGitを使う必要があるのかと尋ねられたら、Sun氏はその必要はないと言う。「TFSのソース管理は、Gitより優れているとは言えませんが、TFSのライフサイクル管理を使う機会があるかもしれません。これは、開発者、PM、BA、QAを含むチーム全体にメリットがあります。」彼は、次のように続けた。
もし、柔軟なブランチ、マージ、非接続開発のようなモダンなソース管理機能が確実に必要な場合には、Gitをおすすめします。しかし、TFSをALMとして使用して、ソース管理の部分をGitとWITに統合されたソース管理にするにはまだ早いことに注意してください。Visual StudioのGitサポートツールは、ほとんどなにもしていません。
アドインのコンパイル済みのバージョンは、Visual Studio Galleryから取得可能である。これは、Microsoft Public License下のオープンソースプロジェクトとして、CodePlexを通じて提供されているソースコードへのリンク。