分岐とマージを把握するための新機能

クリスマス休暇のころ、私は 3 つの「調査」をお約束しましたが、実際のところこのうち 2 つについてしかまだ説明していませんでした。やっと 3 番目の調査に取りかかることができました。

次回のリリースでは、分岐とマージの管理を簡単にするために設計された新機能を数多くお届けする予定です。現時点では、既にある分岐、分岐間の関連、過去に発生したマージ、まだ発生していないマージなどの把握を容易にするための機能に重点を置きます。この問題に対して、私たちは、現場で実際に直面するシナリオに基づいた分析と、各種のシナリオ用に最適化されたソリューションの構築というアプローチをとりました。これは、分岐とマージを視覚化し、すべての問題を 1 つのソリューションで解決しようとするスイス製万能ナイフのような機能を構築するのとは反対のアプローチです。

もちろん、ここで鍵となるのは、最重要だと考えられるシナリオを見極めることです。次に、このシナリオに対して優れたソリューションをデザインすることも、もちろん重要です。この記事では、私たちが最重要と考えるシナリオと、そのソリューションがどのようなものになるのかについて、皆さんと一緒に考えてみたいと思います。この両方に関して、皆さんのご意見をぜひお聞きしたいと思っています。私たちが見極めたシナリオは、皆さんにとって重要でしょうか。私たちのシナリオの把握の仕方に少し問題があるということはありませんか。重要なシナリオを見落としていないでしょうか。私たちが目指しているソリューション解決の方向性に問題はありませんか。

シナリオ 1: もっとよく把握する必要のある変更点を特定しました。この変更点は、マージによってこの分岐にもたらされました。複数の分岐にわたりマージを追跡し、コードの変更が行われたオリジナルのチェックインを発見し、変更の理由を知るにはどうすればよいでしょうか。

ソリューション

ここで鍵となるのは履歴です。ファイルの履歴で変更点を表示する場合、マージについてもさらに調べて、どのマージでどの変更セットが導入されたのかを把握できるようになりました。このような変更セットの一部は、マージの変更セットであった場合もあり、元の変更セットにたどり着くまで、調査を掘り下げていくことが可能です。元の変更セットが見つかったら、変更点、関連する作業項目、チェックイン メモ、ユーザーなどを確認できます。

このスクリーン ショットには「Main」の分岐にある Main.cs の履歴が表示されています。この履歴には変更 7170 と 7150 が含まれ、変更セット 7170 は「Dev Branch」からのマージです。これには変更 7169、7168、7167、7161 が含まれます。7167 と 7161 はそれぞれ分岐 2-TVShows「機能」と分岐 1-Movies「機能」からのマージです。7160、7159、7158 というように続けて、元のチェックインまで変更を辿っていくことができます。また、変更セットを調べて、これらを互いに比較することなども可能です。

image

シナリオ2: すべての「適切な」分岐で反映する必要のある重要な変更点を特定しました。この変更点が統合された分岐とその時期、そしてこの変更点がまだ統合されてはいないが、その必要があると考えられる分岐を示すにはどのようにすればよいでしょうか。

ソリューション

次の画面では、元は VCClient01 の分岐からチェックインされた変更セット 600 が示されています。画面には、この変更セットがマージされた、関連分岐のセット (そしてこの変更セットが統合された変更セット) が示されています。画面上部にあるタイムラインは、各種の変更が「いつ」起こったのかを示す簡単なインジケータになっています。黄色で示される Lab26VSTS の分岐は、変更の一部しかマージされいないことを示し、赤で示される Aftershock の分岐は、この分岐にまだ変更がマージされていないことを示します。ここでも変更セットや分岐に対して、各種の掘り下げや操作が可能です。

image

 

シナリオ 3: 分岐の数が多くなったために、どれがどの分岐で、どのように関係しているのか、よくわからなくなってしまいました。分岐をすべて表示して、その関係を把握するにはどうすればよいのでしょうか。また、各分岐のプロパティと説明を表示して、それぞれが何のためにあるのかを把握するにはどうすればよいのでしょうか。

ソリューション

おおよそ次のようなことを考えています。分岐のツリーを表示して、ノードを自由に展開できるようにします。分岐をダブルクリックすると、その分岐のプロパティ、たとえば説明や所有者などが表示されます。次に示すものは、正確な画面ではありません。これは実際にはシナリオ 2 の別のビューなのですが、シナリオ 3 の UI はちょうどこのようになると考えています (変更セットの番号や色分けなどについてはこの限りではありません)。

clip_image002[4]

シナリオ 4 :Dev 分岐から自分の Test 分岐へマージすることを考えています。マージを最後に行ったのはいつだったかわかるでしょうか。そのときから、どれだけの変更が行われ、マージされた主要な作業はどれでしょうか。また、この結果生じる競合はどの程度になるのでしょうか。

このシナリオについては、現在デザインやプロトタイプがありません。

概要

以上が私たちが見極めた 4 つのシナリオです。これらのシナリオでは、分岐とマージの分野において私たちがやりたいすべてのことをカバーするのではなく、分岐とマージを把握することに重点を置いています。分岐やチェックインなどの操作については、これ以外の機能もありますが、私たちが本当に正しい方向に進んでいるのかどうか、ぜひフィードバックをお寄せください。

Brian

投稿 : 2008 年 1 月 16 日 (水) 午後 2 時 28 分 bharry

Brian Harry さんのブログ - https://blogs.msdn.com/bharry/archive/2008/01/16/new-features-to-understand-branching-merging.aspx より。