*本ブログは Atlassian Blogs を翻訳したものです。本文中の日時などは投稿当時のものですのでご了承ください。
*原文 : 2012 年 10 月 8 日、Giancarlo Lionetti 投稿 “Stash 1.3: Enterprise Git Gets Social with Pull Requests

リモコン。Napster。スマートフォン。靴ひもの両端にあるプラスチック製の小片。これらのすばらしい技術により、前にあったものは時代遅れになり、瞬時に忘れさられました。技術シフトは、小さなものでさえ、完全に業界を変えることができます。これは、10 年前にアジャイルによりソフトウェア開発で起こりました。チームがソフトウェアを開発し、出荷する方法を変えてしまう 10 年に一度の出来事です。そしてそれは Git のような分散バージョン管理システム(DVCS)により、今再び起こっています。

ピア・ツー・ピア技術が音楽とメディアを「共有」する方法を変えたのとほぼ同じように、開発チームにおけるコード共有と作業について、まったく新しい方法をGit が持ち込みました。利点は明白です。開発者は、自分のローカルコピー上でさらに速く作業でき、コードがより安定しているときにはチームの残りの部分と変更をマージすることができます。スピード、品質、幸福。エンタープライズは Git と DVCS にぞろぞろと向かっています。私たちも、昨年その動きをとりました。自社サーバー上で Git 用の良い管理方法を探しているという顧客の声をたくさん聞きました。なので私たちはそれを開発しました。アトラシアン Stash です。今年の 5 月に出荷しました。

そして今日 Stash 1.3 を発表できることを嬉しく思います。それは Git 対応を拡張し、プルリクエストとインラインコメントという、エンタープライズチームにとって重要な 2 つの新機能を備えました。

新しくソーシャルな Stash – プルリクエスト機能を追加

プルリクエストに馴染みのない方のために、ここで入門レベルの説明をします。プルリクエストは、コードへの貢献、変更のレビュー、議論などを行うための簡単な方法で、既存のコードベースにマージするというオプションもあります。もしプルリクエストが話すことができれば、「ここに私が変更したものがあって、私が変更した内容はこうで、私が変更したい理由はこうです」というようなことを言うでしょう。「どうかマージしてもらえますか?」


Stash においてプルリクエストは、ブランチ上の変更をレビューし、お互いの変更を議論し、変更を加え、マスターまたはメイン開発ブランチにブランチをマージし戻すための簡単​​な方法を開発者に提供します。集中型バージョン管理システム(Subversionなど)に精通している方は、「プリコミットレビュー」を思い浮かべてください。しかし、プルリクエストには、キーとなる進化的な利点があります。ローカルのリポジトリで単独で作業する代わりに、Stash上の孤立したブランチ上で変更内容が共有されます。そこでは他の人がコードをレビューし変更を貢献することができます。それはスピード、品質、幸せな開発者にとってとても重要なことです。

なぜプルリクエストをオープンするのか?

Stash のプルリクエストは、ボタンをクリックしてコードの変更をマージすることを可能にしますが、それが最も重要なことではありません。チームに最大の価値をもたらすのはプルリクエストにより始まる議論です。コー​​ドが以下の場合にプルリクエストがオープンされます:

  • マージの準備 – 開発者が取り組んできたブランチが、メインのコードベースにマージされる準備ができた時
  • 継続的なレビューのため – チームメンバーと潜在的なコード変更について議論するフィードバックループを開発者がオープンする

プルリクエスト – ブランチで始まる、マージで終わる

Stash はブランチの使用を奨励しています。分離してコードの変更が行われ、メインラインに統合される前にレビューされます。プライムタイム (通常はバグが修正されたり機能が実装された後) に向けてブランチの準備ができると、Stash とプルリクエストはマージのプロセスを促します。

あなたが作業してきたブランチ、マージしたいブランチを迅速に選択し、簡潔なタイトルと説明を追加して、レビュアーを決定すれば完了です。

プルリクエストを作成する際には、提案する変更をレビューしてもらうために複数のレビュアーを選択することができます。主要な利害関係者に承認を依頼することで、マージのコントロールを正式に行います。プルリクエストが作成されると、レビュアーは、電子メールにより通知され、あなたのチームの他のメンバーも参加することができるようになります。

伝統的なコードレビューとは違って、レビュアーには、リクエストに基づいて素早く行動する義務が実際にあります(誰もボトルネックにはなりたくないですよね?)。そして、承認されたプルリクエストは、開発者とチームの両者が、社会契約を支持していることを示します。別の言い方をすれば、あなたの「doneの定義」として知られているものです。コー​​ドレビューが完了しない限り、変更が統合されません。

レビュープロセス

Stash は、レビュープロセスを「シンプル」で「速い」ものにすることを目指しています。それらは、コードレビューのことを頭に浮かべるときに通常考える2単語ではありません。プルリクエストが作成されると、アクティビティダッシュボードを使用して、プルリクエストのライフサイクル全体を表示し、変更について即座に最新情報を得ることができます。「5つのなぜ?」セッションやバグの振り返りの最中に起こるような、後で参照する完全な監査証跡といったものもまたあります。

概要

Stash のプルリクエスト「Overview (概要)」は、プルリクエスト全体の履歴ビューを提供します。ステータスの変更、コメント、コードの更新などです。何が起こったのか、なぜ起こったのかを時系列に理解することができ、コードをレビューする際の諸経費を削減し、要する時間を節約できます。

変更を吸収した後に、フィードバックや提案を得た場合、直接議論を始めたり既存のコメントに返信をすることができます。

差分

Gitを使っている時に多くの変更が起こっているので、最終的なマージがどうなるかを理解することが鍵となります。Stash のユニークな差分機能は、提案された変更を統合する際に適用される変更セットそのものを表示します。マージボタンをクリックするとどのファイルが変更され、どのような変更が適用されるのか、変更をレビューしているときに確実に分かります。

「Diff (差分)」タブは、コー​​ドレビューが行われる場所です。コードの変更についての議論を開始し、変更のコンテキストを理解し、明確にするために作成者に聞き、加える変更を提案しましょう。

参考: Stash の差分機能のもう一つの利点は、マージのコンフリクト (衝突) を引き起こす可能性がある変更そのものを特定することによって、事前にそれを示していることです。そのように、事前に解決することにより、面倒なマージ(そして総合的にとてもひどく見えること)を避けることができます。

コメントと議論

プルリクエストは、コードに対するゲートチェック以上のものを提供します。サイロから開発者を連れ出し、お互いにコミュニケーションを取れるようにします。たとえ地理的に分散している場合でも、全体としてチームをプロジェクトに従事、投資した状態に保ちましょう。

  • 既存のコードベースに導入される前に大きな欠陥を発見
  • アーキテクチャの改良を検討し、変更のためのガイダンスを提供
  • コー​​ディング標準を確立し、フォロー
  • すばらしい仕事をした人に栄誉を与える

共同作業をするときにコンテキスト内にコメントを残し、コード内で議論しましょう。コメントを追加した後、レビュアーは電子メールにより通知され、スレッド形式のディスカッションが Stash 内で起こります。

コードの議論のポイントは(希望的には)必要な変更を特定することです。プルリクエストにコメントするときも、それは変わりません。コメントは、コントリビューターが自らの仕事をレビューし、変更を加えることに拍車をかけるでしょう。変更が行われ、プルリクエストがまだオープンである場合は、変更が行われたと Stash は認識して、レビュアーと参加者にアラートを送ります。コメントは議論にエネルギーを与え、議論はコードの品質を向上させます!

Stash はまた、機能やバグフィックス周辺で行われたすべての説明と更新についての監査が可能です。

軽量な承認プロセス

Stash は、プルリクエストで迅速なフィードバックが得られるよう、即時の承認メカニズムを提供しています。レビュアーはワンクリックで、提案された変更を承認または却下することができます。

変更が承認されマージされると、プルリクエストがクローズされたことを通知する電子メールが送られます。

Stash 開発チームでは、プルリクエストを承認する最後のレビュアーがマージを実行します。Stash 開発チームが Stash を開発するためにプルリクエストをどのように使用しているかを来週説明しますのでお楽しみに。

ソーシャルな Stash についてもっと知るには

Stash について初めて聞きましたか? Git し続けるために、すぐに無料トライアルを開始しましょう。数分でセットアップできます。

すでにStashを使用していますか? アップグレードがあなたをお待ちしております。開始するにはリリースノート全文をチェックしてください。

Stash 1.3 についてもっと知りたいですか? フィードを購読してください。このリリースブログはプルリクエストのほんの表面部分を紹介しただけです。

About Sean Osawa

2009年Atlassianサンフランシスコ入社。Channel Manager、Business Development、Ambassadorなどを担当。2013年に日本においてアトラシアン株式会社が設立され、マーケティングマネージャーとしてマーケティング全般を担当している。

View all posts by Sean Osawa »