1

私が働いている会社では、x 時間 (通常は 3 か月) ごとにリリースがあります。その間、4 ~ 6 回の「ブランチ リリース可能な」スプリントがあり、すべてのコードがそのブランチに入ります。

しばらくして、ブランチがバージョン xxx としてリリースされ、次のバージョンに進むだけです。しかし、通常のコミットメントにより、古いバージョンを数か月または数年間維持する必要があります。

バージョンからリリースへの分岐は正しいのだろうか。このため、リリース バージョン ブランチがトランクに完全に再統合されることはありません。彼らは永遠に生きています。それらを維持するために、ブランチでバグが見つかった場合、トランクでそれを修正し、手動でブランチに移植する (私はこれが好きです) か、代わりにブランチで作業して移植します (トランクなしでコミットブランチのようなものです)。再統合) トランクに戻ります。おそらく、ブランチが古すぎて大きな変更をサポートできないために、トランクにブランチにマージできない/できないコードが含まれている可能性があることに注意してください。

私たちが使用する方法論の利点/欠点を知っていますか? 保守可能なバージョンに対処する別の方法はありますか? たぶんsvnの外ですか?

4

3 に答える 3

2

基本的に 2 つの異なる「トランク ポリシー」があります。トランクが常にリリース可能な品質であり、すべての開発が再統合されたブランチで行われる安定したトランクと、アクティブな開発がトランクで行われ、リリース前に安定化のために分岐される不安定なトランクです。 .

どのトランク ポリシーが使用されているかに関係なく、リリースされたバージョンは常に再統合されていないブランチである必要があります。

不安定なトランクポリシー (トランクでのアクティブな開発、リリース前に安定化のために分岐する必要がある) に従う例:

1.0用のトランクで開発が進んでいます。ある時点で 1.X のブランチが作成され、コードが安定します。コードが安定していると見なされると、1.0 のタグが付けられてリリースされます。その間、バージョン 2 のトランクで作業が進行し、まもなく 2.X ブランチなどに分岐されます。

バージョン 1.0 で発見されたバグは 1.X ブランチで修正でき、バージョン 1.1 はそのブランチからバグ修正とともにリリースできます。バグがトランクに関連している場合は、マージできます。しかし、この機能はトランクで削除または再構築される可能性があり、このバグ修正をトランクにマージすることは無意味または不可能になります。バージョン 2 のベータ テスターに​​よってバグがトランクで発見された場合は、そこで修正し、後で 1.X などの古いメンテナンス ブランチにバグがあるかどうかを確認し、そこにバグ修正をマージします。それは両方の方法で機能します。

バージョンごとに分岐するよりも優れたポリシーがあり得る方法がわかりません (私の例では、リリースごとではなく、メジャー バージョンごとに分岐します)。また、バージョン/リリース ブランチを再統合する必要がある状況もわかりません。トランク。

于 2012-10-16T17:24:15.447 に答える
1

バージョンからリリースへの分岐は正しいのだろうか。

少なくとも、完全に間違っているわけではありません。常に扱いやすいコードを使用できます。完全に再統合されていないブランチは、内部ゲームであり、主なタスク (時が来たら製品をリリースし、古い問題を修正する) を破壊しないうちにプレイできます。分岐したコード行はあなたのコストです

PM POV から、「混合」ワークフロー (ブランチ内の 2 つのソース、マージセット、および通常の線形履歴) では、ログからリリース用の最終的な「完了リスト」に変換するのが難しくなります。 task" ワークフロー (任意の SCM 内) - このように、ブランチ (開発、ほとんど) は短命で統合可能な作業の一部であり、メインラインとバージョンのブランチは観察しやすいマージセットのみを取得します。しかし、それは個人的な好みや好みにすぎません

于 2012-10-16T17:34:31.263 に答える
0

私は常に最新の安定したコードをトランクに保持し、現在の開発バージョンはブランチにあると思います(さまざまな人がさまざまな要件に取り組んでいるため、ブランチには多くのバージョンがあります)その後、コードの準備が整いますそれが最新の安定したコードになるので、リリースするために私はそれをトランクにマージします。同時に、最新のバージョン番号とリリース日をタグフォルダにタグ付けします。

これで、トランクに最新の安定したコードがあり、タグに最新のリリースされたソースコードがあるので、その特定のブランチを削除できます。

于 2012-10-16T17:08:56.070 に答える