HEAD will cause the branch to become a copy of the last completed version of the repository.
A specific revision will cause the branch to be a copy at a certain point in time in the repository.
A working copy creates a branch based on the latest version of your working copy, and then commits all your changes in the process.
EDIT: An example of selecting a working copy.
You are updating your working copy with the latest version of the trunk to begin making minor changes.
After a few hours, you realize that the work was more than you expected, and you must create a branch.
By creating a branch from the working copy at this point, it effectively creates the branch as if you had done it at the beginning.
source share