アプリケーションの新機能用に名前付きの Mercurial ブランチを作成しています。特定の機能を終了したら、そのブランチをデフォルトブランチにマージし、この機能ブランチを閉じます。
しかし、デフォルトブランチにマージされた変更を失うことなく、名前付きブランチを完全に削除する方法があるのだろうか?
アプリケーションの新機能用に名前付きの Mercurial ブランチを作成しています。特定の機能を終了したら、そのブランチをデフォルトブランチにマージし、この機能ブランチを閉じます。
しかし、デフォルトブランチにマージされた変更を失うことなく、名前付きブランチを完全に削除する方法があるのだろうか?
いいえ、ありません。
2 つのブランチをマージすると、マージ コミットはその 2 つの親コミットの存在に依存します。つまり、やりたくないマージコミットも削除しない限り、マージされたブランチを構成するコミットを削除することはできません。
これは、物事を行うための「Mercurial の方法」でもありません。ブランチが別のブランチにマージされ、そのブランチでそれ以上の開発が行われていない場合、Mercurial はそのブランチがもうアクティブではないことを認識します。hg branches
非アクティブなブランチをリストの一番下に配置します。を使用してブランチを閉じることもできます。これにより、リストhg commit --close-branch
からブランチが削除されます (パラメーターが指定されていない場合)。hg branches
-c
Mercurial キュー (MQ) を調べる必要があるようです。これは、説明したものと同様のワークフローをサポートしているためです。たとえば、複数の MQ キューを設定でき、これらのそれぞれが開発のブランチを表します。