To answer your question re: Which are the most important points to master I would suggest that after you get through the whole checking in and out process, rolling back to old versions and performing diffs you should take a look at branching. Branching can help you deal with the pain of being in the middle of a large change and suddenly needing to perform a bug fix and deploy it to production without the mixing in the half done stuff you are working on.