以前、Team Foundation Serverのクラウド版とも言うべきTeam Foundation Serviceがベータ版で運用されていましたが、正式にVisual Studio Onlineとなったので、オンプレで使っていたTFSからリポジトリを乗り換える前提で、とりあえず使ってみました。
Visual Studio Onlineは基本契約は無料で、プライベートなリポジトリを持つことが出来ます。巷では無料のリポジトリサービスがいろいろありますが、ほとんどの場合はリポジトリに格納するプロジェクトをオープンソースとして公開することが前提です。
もし、ちょっとしたプライベートなプロジェクトを格納しておく場所に困っているなら(ローカルで自前でTFS・Git・Subversionなどを立ち上げるなど、いくら簡単にインストール出来ても保守は面倒です)、Visual Studio Onlineを検討する価値はあるでしょう。
また、他のサービスと異なるユニークな点は、Professional契約以上(月額45ドル/人)で、開発環境としてのVisual Studioが使えることです(インストールが必要)。さらにAdvanced契約以上では、アジャイルソフトウェア開発で有用な、プロジェクト管理システムもフルで使えます。これは、従来のTFSで使用している機能が、SaaSとして利用可能になったものです。
CI(継続インテグレーション)も可能です。但し、ビルド時間に制限があります。時間を超えると課金が必要です。未確認ですが、オンプレミスサーバーにVisual Studio Agentをインストールして、CIだけオンプレミスで実行させる事が可能なようです。これならば、大幅な課金を回避しつつ、サーバー管理の負担を軽減することが出来ます。
オンプレミスのTFSを使えばもちろん課金は不要ですが、TFSの管理にかかるコストの事を考える必要があります。TFS(に限らず、類似システムも含め)プロジェクト管理システムは大掛かりなため、全ての機能を使用して維持するのは、それ相応の準備と計画が必要になります。この点を肩代わりしてくれるサービスだと考えれば、課金をペイ出来る開発チームもあるでしょう。
公平の為、このようなクラウドサービスとしてAtlassianも推しておきます。
また、Visual Studio Onlineは、従来のTeam Foundation Server方式のソースコード管理に加え、分散バージョン管理システムのGitを使用することもできます。これは、オンプレミスのTFS2013では実現出来ないため、Visual Studio Onlineのみのアドバンテージです(将来は改善されるか?)。
物は試しということで、Visual Studio OnlineでGitを使用してリポジトリを作り、Visual Studioを「使わずに」接続してみました。この図のように、あらかじめアカウントのProfile画面からCredentialタブを選択し、Basic認証を有効化しておきます。Gitクライアントからはhttpsで接続しますが、この時に使用するパスワードをここで入力して下さい。私はLive IDのパスワードを入力し続けて、暫く嵌っていました。
この操作は面倒ですが、恐らくはセキュリティ上の措置(Basic認証では平文パスワードを保持する必要がある)の為と思われます。念のため、Live IDのパスワードとは変えるようにします。
Windows環境のGitクライアントはいくつか選択肢があります。Git開発者の公式なパッケージはbashを含むMSYSベースのCLI環境です。どのクライアントを使うにしても、このパッケージはインストールしておいたほうが良いでしょう。何故なら、他のクライアントがこのパッケージ内のバイナリを使う事があり、かつすべてのクライアントがGitのすべてのオペレーションをサポートしているとは限らないためです。
Visual Studio内で使用できるプラグインGitクライアントも数種類あります。問題は、どれもまだ品質が一歩劣るという所でしょう。マイクロソフトも純正のGitクライアントプラグインをリリースしています。これはVS2012用で、VS2013には初めから搭載されています。しかし、Gitで使用する頻度の高いコマンドがサポートされていない・複数のリポートリポジトリに接続出来ないなどの問題があります。石坂さんのブログに詳しいので参考にして下さい。ボチボチ使えるのがGit Source Control Providerです。窓の杜の記事も参考にどうぞ。
プラグインではないクライアントとして有名処ではTortoiseGitがあります。が、Tortoiseシリーズは思う所があり、私的にはSourceTreeをお勧めします。このクライアントは独立型(いわゆるVSSクライアントのような)で、Mercurialもサポートします。
操作感についてはそこそここなれている印象です。バックエンドを普通のCLIベースのGitクライアントで賄っているため、スムーズさは今一つですが、どのクライアントもこの方式なので仕方が無いでしょう。それ以外の点では、自分が何をやろうとしているのかが把握しやすいのが良い点です。そして、SourceTreeは前段で紹介したAtlassianが開発しているというのも、説得力があります。
SourceTreeを使用して、Visual Studio Online上のGitリモートリポジトリに接続し、ローカルリポジトリにコミットしたコードをpushしてみました。当然のことながら、全く問題ありません。一点、Visual Studio Online上のリポジトリURLがどこから取得出来るのか分かりにくいという問題があります。以下の図を参考にして下さい。
ソースコードエクスプローラーで、ツリーのリポジトリをクリックしたときに表示されているURLが、Gitクライアントで入力すべきURLです。URL末尾のリポジトリ名の手前に「_git」という識別子が入るので、確認してください。
これからGitを始めるという方は、VSS・TFS・Subversionと同じと思って掛かると挫折します(笑) Gitは同じバージョン管理システムでも全く異なる仕組みを持ちます。必ず知識をつけておきましょう。
Gitポケットリファレンスを、お勧めします。