There is a newer and better pattern… Use Mercurial evolve extension.
You have no big bang merge pain… Every day (or oftener) you rebase your entire branch on top of the mainline. (Mercurial’s merge algorithm is pretty near flawless)
You can fold, split, reorder and prune changesets so each changeset is a single topic. So you move from “everything compiles and works” to “everything compiles and works” for each commit.
If after the fact you find something that isn’t working, you can use hg bisect to home into the commit that broke it, and fix and amend that commit.
There is a newer and better pattern… Use Mercurial evolve extension.
You have no big bang merge pain… Every day (or oftener) you rebase your entire branch on top of the mainline. (Mercurial’s merge algorithm is pretty near flawless)
You can fold, split, reorder and prune changesets so each changeset is a single topic. So you move from “everything compiles and works” to “everything compiles and works” for each commit.
If after the fact you find something that isn’t working, you can use hg bisect to home into the commit that broke it, and fix and amend that commit.