Question: My coworker accidentally made two commits in the default branch instead of creating new his own development branch.

How can I change this situation and moves these two commits to a new branch?

Answer: 
Imagine the following scenario:

```
D
|
C
| "I want to move C and D here"
B/
|
A

```

Steps:

1. `hg update B`
2. `hg branch "mybranch"`
3. `hg commit --message "Create my branch"`
4. `hg update mybranch`
5. `hg graft -r C`
6. `hg graft -r D`
7. `hg strip -r C` (this should be the revision C had originally)

The `strip` command is provided by an extension that you need to enable. You can [follow a guide on how to enable it on the Mercurial Wiki](https://www.mercurial-scm.org/wiki/StripExtension#Configuration).
8. `hg update default`
The two answers above are both correct but, **assuming one has not yet pushed the commits**, there's a third way.

I just successfully used the [`rebase`](https://www.mercurial-scm.org/wiki/RebaseExtension) command to move a string of commits to a topic branch I had forgotten to create in the first place.

I first updated to the revision from which I wanted to create the branch on which my commmits were supposed to be, then I rebased the earliest of my commits from the wrong branch on this new one and ta-da, done.

Takes more time to explain it than to do it with TortoiseHg or even the command line, really.