ServerSourceTree前回はメールとJIRAとの連携によるプロジェクト管理を説明しました。今回は、ソースコード管理・バージョン管理について説明します。最近、「⁠DevOps」という言葉を耳にします。これは「開発(Development⁠)⁠」と「運用(Operations⁠)⁠」を組み合わせた言葉であり、開発と運用が連携して協力する開発手法の1つです。必要といわれており、これらの要素をカバーするのが「バージョン管理システム」です。近年では集中型リポジトリのSubversionから、分散型のGitが主流になりつつあるので、まずはGitのメリットや有効に活用する方法の紹介をします。GitのメリットSubversionに対するGitの最も大きな利点は、ローカルリポジトリで作業できることと、マージが簡単なことです。ローカルリポジトリ上で作業できる各個人は、リモートリポジトリをクローン(リポジトリをまるごと複製すること)したローカルなリポジトリで作業します。これにより、ほかのメンバーを気にせず作業でき、外部にアクセスしなくてよいので軽快に作業ができます。コミットツリー編集機能を使えば、最終的に共有する前に作業内容を整理できるため、コミットやブランチの作成などを気軽に行えます。Gitは分散型なので、リモートリポジトリの負荷集中を避けられるというメリットもあります。マージが簡単Gitではブランチ作成とマージがとても簡単です。ブランチを作る目的の1つは、メジャーバージョンアップやカスタマイズ案件などに向けた開発ツリーの分岐です。このケースはあまりマージが発生しないため、Subversion時代も普通に行われていました。1つはチーム開発で重要な目的で、複数の開発者が安全に効率よく並行開発できるようにすることです。機能追加、修正のときに必ずブランチを切るようにすることで、ほかのメンバーによる変更との衝突チェックの煩わしさなしに、頻繁にコミットできます。積極的なコミットは、コードレビュー時や不具合個所の追跡時にとても役立ちます。SubversionからGitへのスムーズな移行GitはもともとSubversionの使いにくいところを改良し、良いところを伸ばす方針で開発されたものなので、Gitを利用するとコードを書くことにより集中できるようになります。いえ従来のバージョン管理システムに慣れた開発者が乗り越えなければならない壁(考え方の違い)が確かに存在します。チームや社内全体にひろめていくためには、Gitの使い勝手を良くするツールは必須と考えてよいでしょう。Server(Gitリポジトリ管理⁠)⁠、SourceTree(Gitクライアント)のようなサポートツールを使うことで、移行のハードルはずいぶんと低くなります。ServerはマスタGitリポジトリの管理などの機能を備えた便利なツールです。Gitリポジトリにプロジェクト階層を導入し、開発プロジェクト単位で管理できるようにします。プロジェクトにはアクセス権限を設定でき、さまざまな関係者が混在する大規模プロジェクトでもセキュリティを確保した開発が可能です。開発者目線で注目したいのは、プルリクエスト(通称プルリク)やコードレビューの支援機能です。プルリクとは、プライベート環境で行った変更のマージをマスタに要求することです。これはコードレビューを行うのにちょうどよいタイミングであり、レビュー対象としてもほどよい粒度です。コードレビューの支援機能としては、レビュアの承認機能やインラインディスカッション機能があります。ソースコードにインラインでコメントを追加し議論することで、ソースコードと紐づいた形で議論が残るため、将来の修正で役に立つでしょう。Serverはプロジェクト管理システム(JIRA)と統合されており、よく使われる機能をJIRAの課題上から操作できます。課題画面の開発セクションには、ブランチやコミット、プルリクなどの情報、操作リンクがあり、課題ごとの実装状況(実装中、レビュー中など)が一目でわかります。問題発生時には、課題→プルリク→頻繁なコミット→ソースコードの該当個所と、段階的な追跡が可能になります。ほかにもセキュリティの考慮などさまざまなサポートがありますが、詳しくは過去記事をお読みください。SourceTreeローカル環境でGitを用いてソースコードを管理する方法の1つはコマンドライン操作ですが、それなりに覚えることが多く、Gitの概念をよく理解していないと扱いづらいです。ここでは、アトラシアン社が無料で提供しているGitクライアントアプリケーションであるSourceTreeを紹介します。Serverと親和性が高く、グラフィカルなUIを持っています。単体としてもよくできたGitクライアントで、コードを書くことに集中できます。実装を始める際は、まずサーバにあるリポジトリをローカル環境にクローンしますが、SourceTreeではクローン作成操作時にリポジトリ一覧が表示されるので、それを選ぶだけで準備が完了します。使う機能はツールバーとして前面に出ているので、基本的な操作に迷うことはないでしょう。使用頻度の低い機能ももれなくサポートしているので、入門者だけでなく熟練者にもお勧めです。SourceTreeの画面には、ブランチ構造やブランチ名、コミット履歴などが見やすい形で表示されます(図1⁠)⁠。チーム開発ではコミットツリーの出入りが激しくなるので、状況を逐一理解するための視覚化は重要です。SourceTreeまた、SourceTreeは変更内容を一時的に保存するスタッシュコマンドもサポートしています。Git操作が正しいか不安になりがちな入門者にとっては、とりあえず変更個所を保存できるスタッシュコマンドはたいへん心強い存在です。スタッシュ一覧や、保存内容の差分表示などは便利で手放せません。後編では、Git+サポートツールによるバージョン管理システムがプロジェクト管理システムと連携をすることで、どのような開発作業の流れを生むのかを見てみましょう。Expertsの盾にはアジアパシフィック市場においてトップセラーを証す刻印が...日本だけでなく、アジア圏でもアトラシアン製品販売のトップエキスパートであるリックソフトのWebサイトでは、各アトラシアン製品の体験版を提供しているほか、アトラシアン製品専用のコミュニティも運営しています。Ltd.ページ内容の全部あるいは一部を無断で利用することを禁止します⁠。個別にライセンスが設定されている記事等はそのライセンスに従います。