3

ブランチを使用してバグ修正を行う開発者がたくさんいます。私の必要性: これらすべてのブランチを 1 つのメイン ブランチ「デフォルト」にマージする自動化 (または方法がある) の最良の方法は何ですか。

ありがとう

4

1 に答える 1

6

注: これは私の意見です。ここには複数の意見が存在する可能性がありますが、少なくともここでの私の主張を理解して、異なる意見を求めていると判断してください。

まず第一に、ここには何かが欠けています。長期的には、これがワークフローの問題を引き起こすと思います。

マージは、スキップしたり、他の人に委ねたりするべきものではありません。それらのブランチで作業する開発者は、自分自身をマージする必要があります。彼ら、そしておそらく彼らだけが、彼らが何をしたか、そしてマージの競合を解決する方法を知っています。

いずれにせよ、それを完全に自動化するとうまくいきません。

開発者が使用すべきワークフローは次のとおりです (私の意見では)。

定期的に、たとえば毎朝、ブランチの開発者はビルド サーバーをチェックして、デフォルトのブランチがビルドされていることを確認する必要があります。存在する場合 (そしてそうあるべきです!)、それらはデフォルトのブランチから独自のブランチにマージされます。

これには、次の 3 つの主な利点があります。

  1. 彼らは常に自分のブランチに最新のコードを持っており、別のブランチですでに修正されている既知のバグを回避する作業に行き詰まることはありません。
  2. 彼らは他のブランチからのマージ競合に常に対処していますが、競合は小さく、変更を行った開発者の記憶にはまだ残っています。
  3. マージの競合に毎日対処しているため (存在する場合)、そのブランチの存続期間が終了すると、デフォルト ブランチとほぼ完全にマージされます。無料ではないにしても、安くなるはずです。

ある時点で、彼らの作業をデフォルト ブランチに統合するために読み込まれ (定期的に、つまり新機能の部分リリース、または最後にすべてが完了します)、さらに別のマージデフォルトから元のブランチに戻します。自分の支店。これにより、残りの開発者にリリースする前に、長引くマージ競合がそのチームのブランチで処理されることが保証されます。

そのマージによるマージの競合に対処したら、ブランチからデフォルトに戻る、他の方向をマージできます。この時点で、誰かがその間に競合する変更をデフォルトにマージ/プッシュしない限り、マージの競合はまったく発生しません。

このようにすることで、次のことが保証されます。

  1. マージを行う開発者は、マージのトレーニングを受けます
  2. 変更を行った開発者は、それらの変更をまだ記憶に新しいままにしています。
  3. マージの競合に関連する作業は、頻繁に行い、少しずつ行うことで償却します。
  4. 大規模なマージは行われません。プロジェクトの最後の「1 週間」では、誰もがすべての変更を忘れてしまい、なぜ変更が行われたのか、誰が変更を行ったのかを忘れてしまいます。

このいずれかが不明な場合は、コメントを残してください。それに応じて更新/編集します。

于 2011-04-29T10:54:06.503 に答える