Branches and Sticky Dates.
I'm not going to show the commands here, just talk about the concepts.
Here is the situation. You released version 2.0 of WorderSoft and are hard at work on version 2.1. A user calls up and reports a bug. Version 2.1 is not ready for release and the customer is frantic.
You can recall the code as it was when you released version 2.0 and work on it. You DO NOT want the changes you are making to be updated as the current versions of the file. The commands will apply a sticky date to each file you are working on. If you commit these files, they will end up with revision numbers something like 1.17.1.1 The extra "1.1" means branch 1, revision 1. Commits will generate new revisions for the branch (1.17.1.2, etc.) until you just the -A option to remove the sticky dates and return to the current release.
Note: You can also use sticky dates to stop getting certain files that others are changing a lot when their changes are unstable and are giving you a hard time.