私は Mercurial でのリリース管理に関するさまざまな回答を調査してきましたが、正しい方法をほぼ見つけました。ただし、すべてが頭の中でうまくクリックされるようにするには、少し助けが必要です。
当社が必要としているものは次のとおりです:
1) 開発にバージョン管理スキーム {major.minor.patch} を
使用します 2) 名前付きブランチとタグをリリースの管理に使用します (たとえば、リポジトリのクローン作成とは対照的に)
3) リリース作業中3.0 では、古いメジャー リリースをサポートする必要があるかもしれません。たとえば、リリース 2.1 でバグが見つかった場合は、それを (リリース 2.1.1 で) 修正し、現在のリリース 3.0 にマージする必要があります。
さまざまなオプションと回答を調査した結果、Steve Losh からの次の優れた回答(以下のチェンジセット ツリーをコピーしたもの) がおそらく必要なものですが、2.1.1 で作業して 3.0 にマージする方法がわかりません。後者がすでにタグ付けされている場合のデフォルト?
$ hg glog -l 1000
@ changeset: 25:efc0096f47c0 tip
| summary: Added tag 3.0 for changeset d1a7fc3d7d77
|
o changeset: 24:d1a7fc3d7d77 3.0
|\ summary: Merge in the redesign changes.
| |
| o changeset: 23:b5b69d24c8f7 3.0-dev
| | summary: Finish 3.0 redesign.
| |
| o changeset: 22:4c2f98fac54b 3.0-dev
|/| summary: Merge in the latest changes to 2.1/mainline.
| |
o | changeset: 21:37df04521032
| | summary: Added tag 2.1 for changeset 39ecc520fc0a
| |
o | changeset: 20:39ecc520fc0a 2.1
|\ \ summary: 2.1 development is done.
| | |
| o | changeset: 19:208f3f9236af 2.1-dev
| | | summary: Finish the 2.1 work.
| | |
| | o changeset: 18:4a024009a9d6 3.0-dev
| | | summary: More redesign work.
| | |
| | o changeset: 17:00c416888c25 3.0-dev
| |/| summary: Merge in changes from the 2.1 branch to keep the redesign current.
| | |
| o | changeset: 16:a57e781a0db1 2.1-dev
| | | summary: More 2.1 work.
| | |
| | o changeset: 15:ddeb65402a61 3.0-dev
| | | summary: More redesign work.
| | |
+---o changeset: 14:90f5d7a8af9a 3.0-dev
| | | summary: Merge in the fire fixes.
| | |
| o | changeset: 13:78a949b67bb9 2.1-dev
|/| | summary: Merge in the fire fixes.
| | |
o | | changeset: 12:6dfe9d856202
| | | summary: Oh no everything is on fire, fix it in the mainline.
| | |
| o | changeset: 11:86767671dcdb 2.1-dev
| | | summary: Smaller changes for 2.1.
| | |
| | o changeset: 10:25dec81d2546 3.0-dev
| | | summary: Work more on the redesign.
| | |
+---o changeset: 9:42c7d689fb24 3.0-dev
| | summary: Start working on a complete redesign.
| |
| o changeset: 8:3da99186ca7d 2.1-dev
|/ summary: Start working on 2.1.
|
o changeset: 7:9ba79361827d
| summary: Added tag 2.0 for changeset 755ed5c5e291
|
o changeset: 6:755ed5c5e291 2.0
|\ summary: Merge in the dev branch for 2.0.
| |
| o changeset: 5:44a833fcc838 2.0-dev
| | summary: Finish work on 2.0.
| |
| o changeset: 4:d7ba6aae1651 2.0-dev
|/| summary: Merge in the critical fix.
| |
o | changeset: 3:968049f1b33a
| | summary: Fix a critical bug on the main branch.
| |
| o changeset: 2:917869609b25 2.0-dev
| | summary: More work on the new version.
| |
| o changeset: 1:f95798b9cb2e 2.0-dev
|/ summary: Start working on version 2.0.
|
o changeset: 0:8a3fb044d3f4
summary: Initial commit.
つまり、上記の変更セット ツリー/リリースでは、3.0 の作業を開始している間に 2.1.1 の修正に取り組むことは可能ですか? 3.0 が既にタグ付けされている場合、どうやって 2.1.1 をデフォルトにマージするのでしょうか? ここで何か不足していますか?そうでない場合、要件に従ってリリースを管理するためのより適切な方法はありますか? シナリオの変更セット ツリーの同様のスナップショットを提供していただければ幸いです。
よろしくお願いします。あなたたち最高。