開発のボトルネックはどこだ?―迷えるマネージャのためのプロジェクト管理ツール再入門

第3回今どきのバージョン管理システムとは? Stashで実現する快適な開発環境

多くの開発現場でGitが使われている理由

ソースコードのバージョン管理を効率化するためのツールとして、これまで多くの現場で使われていたのがApache Subversionです。それ以前に使われていたCVS(Concurrent Version System)と同様の操作性を実現しつつ、CVSが抱えていたさまざまな課題を解決したことで、Subversionは人気を博しました。

ただ、Subversionにもいくつか難点があります。その中でもとくに大きいのは、複数の拠点で開発する際のレスポンスの問題でしょう。Subversionは中央のサーバでソースコードを集中的に管理するクライアント/サーバ型のモデルであるため、サーバから物理的に離れた拠点でアクセスすると必然的にレスポンスが低下し、開発効率にも影響が生じてしまいます。また、機密情報であるソースコードに遠隔地からアクセスするときにはセキュリティのためにVPNサービスなどの閉域網を使うケースが一般的ですが、利用者数の増加などによって広帯域化が必要となれば、コストの問題にも直結するでしょう。

そこでSubversionの代わりに広まりつつあるのが、分散バージョン管理システムである「Git」です。クライアント/サーバ型のSubversionとは異なり、Gitは複数の拠点や端末でリポジトリ(管理対象となるデータのまとまり)を管理できる分散型バージョン管理システムの1つであり、そのメリットから多くの開発現場ですでに使われています。

Gitの使い勝手を大幅に高めるStash

Gitでバージョン管理を行うには、まず全体のマスタとなる中央リポジトリを構築し、各開発者はマスタのリポジトリをクローンして自分のローカルリポジトリを作成します。

端末で実施した修正のコミットやブランチの作成、タグ付けといった作業は、ローカルリポジトリに対して行います。作業が完了したあとには「プッシュ」と呼ばれる操作でローカルリポジトリの内容を中央のGitリポジトリに反映します。

このように、普段はローカルリポジトリで作業を行い、作業が完了したときだけGitリポジトリにプッシュすればよいため、ネットワークのレスポンスを気にせず快適に作業を進められるのがGitの特長です。

このGitリポジトリを管理するためのツールとしてアトラシアンから提供されているのがStashです図1⁠。Gitをそのまま利用した場合、リポジトリやユーザの管理操作をすべてコマンドラインから行うことになりますが、Stashを使えばわざわざコマンドを覚えることなくWebインターフェース上で各機能を利用できます。

図1 WebブラウザでGitリポジトリを管理できる、アトラシアンの「Stash」
ブランチのパーミッション画面

図1 ブランチのパーミッション画面
コードレビューの画面
図1 コードレビューの画面

JIRAやJenkinsとの連携もサポート

StashのWebインターフェースは多機能で、バージョンやブランチの比較、ブランチのマージなどの操作を手軽に行えるほか、リポジトリ内のソースコードを参照するためのソースコードビューアも用意されています。また、実際の開発現場でのワークフローに合わせて権限設定ができます。たとえばソースコードに何らかのバグがあり、ブランチを作成して修正を行った際に、レビュアーの承認がなければ作成したブランチをマスタにマージできないようにするなど、さまざまな設定ができます。

業務で利用することを想定した機能が用意されていることも特長でしょう。具体的には、ユーザごとにきめ細かくパーミッションを設定できるほか、リポジトリやプロジェクトの設定について誰がどんな変更をしたのかを監査ログとして記録するといったしくみが用意されています。これらの機能により、たとえばオフショア開発で外注先が作成したソースコードも集約して管理したいといったニーズにも対応できます。

課題管理ツールであるアトラシアンのJIRAとの連携も、Stashならではの魅力でしょう図2⁠。両者を連携させれば、JIRAで課題を作成した際に、その画面からStash側のブランチを作成してブランチと課題を紐づけることができます。ブランチで実施したコードレビューやマージの履歴もJIRAの課題にリンクします。また、Stash側のコミットとJIRAの課題を結び付けられるため、どの課題を解決するためのコミットなのかが素早くわかるのも便利です。

図1 課題管理ツール「JIRA」と連携できることも「Stash」の大きな魅力。Stashを操作するとJIRA側の課題のステータスを自動的に変更
図1 課題管理ツール「JIRA」と連携できることも「Stash」の大きな魅力。Stashを操作するとJIRA側の課題のステータスを自動的に変更

CIツールであるJenkinsとの連携も可能で、StashでのコミットをフックにJenkins側で自動的にビルドを行うという環境も構築できます。すでにJenkinsで自動ビルド環境を整えている企業にとっては、うれしいポイントでしょう。

このほかにも、Stashには生産性向上につながる魅力的な機能が多数盛り込まれています。現状のバージョン管理システムに課題を感じているのであれば、まずはStashの体験版で実際の機能を試してみてはいかがでしょうか。

Atlassian Expertsの盾には
アジアパシフィック市場において
トップセラーを証す刻印が…
Atlassian Expertsの盾にはアジアパシフィック市場においてトップセラーを証す刻印が…

日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。まずはアクセスしてみては!

Stashの無料体験版を提供中:
https://www.ricksoft.jp/product/atlassian/stash
リックソフトJIRAデモ環境
https://www.ricksoft.jp/demo/

おすすめ記事

記事・ニュース一覧