From your comments, it sounds like you're trying to accomplish what's called "cherrypicking": Selectively copy some changesets to another branch, without treating them as a merge. If that's correct, you can do it by first creating an ordinary branch off revision one, then grafting onto it the changesets you want to copy. The command hg graft is designed for this purpose.
Here's how it would work with a named branch, selective
. If you want unnamed branches, just omit the branch creation.
hg update -r 1
hg branch selective
hg graft -r 3
The result will look like this (which, I hope, is what you wanted):
4
|
3
| 5 = 3
2 /
|/
1
|
0
By default, graft will copy user, date, and description from the source changeset(s). The new revision will have identical effects to revision 3, but will have a new numeric and hash id. Mercurial will not be aware of the relationship between revisions 3 and 5.
There's no way to selectively import some changesets and treat the operation as a merge: Merging always unifies the complete (linear) history up to the point being merged.