0

この質問の前に、TFS の仕組みと GIT の仕組みに関する初期の誤解に基づいて、TFS を誤って使用している可能性が高いという声明を出します。

バックグラウンド:

  • 私たちはすべての開発を行うメインブランチを持っています。
  • リリースの準備ができたら、メイン ブランチからブランチを作成し、バージョンで名前を付けます (例: "v8.10.0")。
  • この新しいブランチからコンパイルしてリリースします。
  • その後、main ブランチに戻って開発を進めます。
  • 以前のリリースで重大な問題が発見され、開発ブランチのスプリントの途中である場合、以前のバージョンのパッチを作成する必要があります。この場合、リリース ブランチから新しいブランチを作成し、その新しいブランチで問題の修正を開始します (例: "v8.10.1")。
  • 次に、8.10.1 ブランチに適用した修正をメイン ブランチに取得する必要があるため、8.10.1 から dev へのマージを実行すると、問題が発生し始めます。このマージは根拠のないマージであり、マージの完了には必ず何時間もかかり、多くの手作業によるマージが必要であり、プロセスの最後には通常、マージ プロセスで失敗した少数のファイルが存在します。さらに悪いことに、TFS は通常、一部のファイルを自動マージできると判断しますが、これは完全に間違っている傾向があり、コードが完全に台無しになってしまいます。

このタスクを達成する方法についての私たちの基本的な理解には欠陥があるようです.それは頻繁に起こるわけではありませんが、常に私たちを悩ませています.

4

1 に答える 1

2

分岐には多くの戦略があり、どれが最も適しているかを判断できるのはあなただけです。質問からわかるのは、メインの開発ブランチとリリース ブランチがあるということです。テスト用のブランチがありません。並行開発のためのブランチがありません。ホットフィックスのブランチがあります。ブランチを編成する 1 つの方法は次のとおりです。

O----------------main dev branch------------------>
    |                                             ^
    V                                             |
    O---------------release branch---------------->
         |                                        ^
         V                                        |
         O--------------hotfix branch------------->

したがって、開発中の主な作業用に 1 つのブランチがあります。main からの realese のブランチ (リリースごとに 1 つのブランチ)。そして、リリースからのホットフィックスのブランチ。バージョン管理のために、リリース ブランチ ( https://msdn.microsoft.com/en-us/library/ms181439.aspx )にラベルを適用できます。これで、メインからリリース、リリースからホットフィックス、ホットフィックスから Realese、リリースからメインに問題なくマージできます。

実際には、テスト ブランチと並行開発ブランチでは少し複雑になります。私のプロジェクトでは、次のようなものを使用します。

O--------parallel dev2---------------------------->
^                                                 |
|                                                 V
|    O---parallel dev1---------------------------->
|    ^                                            |
|    |                                            V
O------------------main dev branch---------------->
     |                                            ^
     V                                            |
     O--------------test branch------------------->
         |                                        ^
         V                                        |
         O--------------relese branch------------->

しかし、これらすべてがなくても、デザインも機能するはずです。問題が発生する主な理由は、ホットフィックス ブランチをリリース ブランチに、リリースからメイン ブランチにマージできるときに、ベースレス マージを行っていることです。

于 2015-10-30T20:20:54.983 に答える