ソース・コード管理のオンライン・サービス「Team Foundation Service」とTFS/Gitなどのオンプレミス・ツールを解説する連載スタート。
powered by Insider.NET
ソース・コードの管理は多くの場合、組織内のサーバ(いわゆるオンプレミス・サーバ)で運用しているところが多いのではないだろうか? SubversionやGitなどを外部のVPSにインストールして使っている場合もあるだろう。一方、現在ではGitをオンライン・サービスとして提供するGitHubや、Team Foundation Server(以降、TFS)をオンライン・サービスとして提供するTeam Foundation Service(以降、TF Service)なども提供されている。
本連載ではオンライン・サービスとして提供されているソース・コード管理とオンプレミスのソース・コード管理について解説する。
●今、使えるソース・コード管理サービス
現在、ソース・コード管理ソフトウェアは、オープンソースとプロプライエタリを合わせて数多く存在している。ページ数の関係上、全部を紹介することはできないが、以下のソフトウェアであれば1つぐらいは名前を聞いたことがあるのではないだろうか。
さらに、ソース・コード管理ソフトウェアをオンライン・サービスとして提供している企業・団体もある。オープンソース関係のホスティング・サービスはWikipediaにまとめられているので、参考にしてほしい(参考:「OSSホスティング・サービスの比較(wikipedia)」)。
最も著名なサービスとしては、(冒頭でも挙げた)Gitをオンライン・サービスとして提供している「GitHub」がある。GitHubはオープンソース・プロジェクトのソース・コード管理であれば無料で使える。無料利用では、一定の制限はあるものの、使いやすいユーザー・インターフェイスや、ほかのユーザーやリポジトリのフォローのしやすさから人気を博している。
TFSをオンライン・サービスとして提供している会社も国内外にいくつかあるが、マイクロソフトも2012年10月31日から「http://tfs.visualstudio.com」というサイトで、TF Serviceを正式にサービス開始した。2013年から以下の場合を除いて、課金が開始される(金額は記事執筆中において公表されていない。参考:「Pricing Information(英語)」)。
TF Service上のソース・コードは原則非公開で、各開発者のMicrosoftアカウントを、プロジェクトのメンバーとして招待することにより、その開発者はリポジトリにアクセス可能になる。TFSといえば、「Visual Studioからしかアクセスできない」というイメージが強いが、Team Explorer Everywhereを使用すればEclipseからアクセスすることもできる。
「TFSにはなじみがないけど、Gitのコマンドに慣れている」、もしくは「社内にすでにGitがある」といった場合のユーザー向けに「Git-TF」というツールがオープンソースで公開されている。これは、ローカルにGitリポジトリを構築しておき、TFSのリポジトリと同期をとるためのソフトウェアだ。Git-TFを使う場合は以下のような形になる。
Git-TFはTFS 2008/2010/2012をサポートし、クライアントはJavaランタイムがインストールされたWindows/Mac/Linux/Solaris/AIX/HP-UXといった多様なプラットフォームをサポートする。
ここまでに説明したソース・コード管理サービスの参考情報へのリンクを、以下にまとめておく。
Visual Studio 2012の次期アップデートであるUpdate2において、ソース管理にGitが選択できるようになるという発表があった。現在でもVisual Studio 2012 Update2 CTP(コミュニティ技術プレビュー)とVisual Studio Tools for Gitをインストールして、「http://tfs.visualstudio.com」でサインアップすれば、サーバを用意することなく、ソース・コード管理にGitを選択できる。ただし、CTP版は正式なプロダクトに使用できないため、評価用の環境にインストールすることが推奨されている。TFS 2012 Update2 CTPはCTP版から正式版へのアップグレードはサポートされないので、インストールを行う場合は注意してほしい。Update1もCTPのデータベースが残っていると、アップデート処理そのものが行われなかった。Update2でも同様になると考えられる。ソース・コード・リポジトリを以前のバージョンに戻すにはバックアップからの復元しかないため、注意してほしい。
TFS 2012 Update2 CTPでソリューションを作成する際に[ソース管理に追加する]にチェックを付けると、以下のようなダイアログが表示され、GitかTFVC(Team Foundation Version Control)のいずれかを選択することができる。
また、Team Foundation Serviceに新しいプロジェクト作るときには、次のようなバージョン管理システムを選択するダイアログが表示される。
●自分でソース・コード管理ソフトウェアを使用せず、サービスを使う理由
ソース・コードは秘密事項だから外部に置かない、という考えもあるだろうが、外部のホスティングと同じであると考えて受け入れれば多くのメリットを享受できる。例えば、次のようなメリットが挙げられる。
「プラットフォームが日々進化する」というのは分かりづらいかもしれないが、GitHubやTF Serviceでは日々新しい機能が追加されている。TF Serviceの場合は定期的(おおむね3週間程度)に新しい機能を追加すると告知されている。TF ServiceのNEWSにおける機能追加の告知日付を見ると、かなり頻繁に機能追加が行われていることが分かる。
もちろんソース・コードを外部に置くことによるデメリットもある。最も大きいものとしてはメンテナンスをコントロールできないことだろう。特に海外のサービスを使う場合、時差の都合で日本では都合の悪い時間帯に行われる可能性もあるし、プロジェクト末期の追い込み状態では土日をメンテナンスで止められると困るという場合もあるだろう。
通常のメンテナンスであれば、あらかじめ告知されるので、どの程度でどのくらいの時間行われているか、また現在どんな問題が起きているのかといった情報を定期的にチェックしておきたい。
また、顧客とユーザーがソース・コード管理ツールにアクセスできるインターネット接続可能な環境であれば、「最新のソース・コードにアクセスできる」「課題管理やドキュメントを同じ場所で管理できる」というメリットは非常に大きい。
もし発注者と受注者が異なる場所で作業しており、「ネットワークもお互いアクセスできない」「メールと会社情報を公開するWebサイトにしかアクセスできない」といった場合、連絡はメールおよび、電話となる。お互いの課題管理はExcelシートの一覧および、ExcelやWordで成形された問い合わせ票を送付、ということになり、非常に煩雑となるだろう。
小さい規模で、問い合わせそのものが多くなければExcelフォーマットでの運用もいいのかもしれないが、Excelでの一覧をやり取りすると「どのバージョンの一覧が最新なのか?」という根本的な問題が発生しやすい。また、後から参加する人がどの問題に誰が対応して、どのような状況なのかが分からなくなることもある。
インターネット上に双方がアクセス可能なリポジトリや問題追跡のシステムを持っていれば、このような問題からは解放される。新規に参加したメンバーも蓄積された情報を追いかけやすい。
●オンプレミスでの優位点
事業者が提供するサービスを使用せず、組織内でTFSやGit、SVN、Tracといったソース・コード管理ツールや課題管理システムを運営する理由は何だろうか? まさに「サービスを使用する」とは逆の理由になる。
なお、TFS 2012を拡張する例として、TFSにはPreEmptive Analysis for TFSの無償版が添付されている。PreEmptive Analysis for TFSとは、TFSにインストールするアドオンであり、テストや稼働中に例外が発生すると自動的にTFSの作業項目として登録してくれる便利なアドオンだ。
PreEmptive Analysis for TFSをインストールすれば、テストを行った結果、例外が発生すればPreEmptive Analysis for TFSで自動的に作業項目として登録するという作業の効率化もできる。このような独自の拡張はオンプレミス版の優位点だ。
オープンソースのソース・コード管理ツールを使う場合でも、「社内で用意されている独自の認証機能に統合したい」「既存の別システムに通知機能を連携させたい」といった場合もオンプレミスを選択する必要がある。
Copyright© Digital Advantage Corp. All Rights Reserved.