Branch vs. Tag vs. Revision in SVN terminology

svn

Solution

A tag is nothing more than a special, read-only branch. (And even the read only part can be circumvented.)

You'd use a tag on the day you release code to production. You'd tag the code with a descriptive name. That version of the code should never, ever be modified again. It gives you the ability to recreate the state of the application exactly as it was on the tag/production date.

Problem

I am a single developer learning how to use source control software. I have read the Subversion documentatio and I have considered the difference between a Branch and a Tag but I am not yet clear. I have also read this question: How is a tag different from a branch? Which should I use, here? and this question: What do "branch", "tag" and "trunk" mean in Subversion repositories?. The reason I am not clear is because version control software (specifically svn) allows you to go back to a previous "revision" in either the Trunk or the Branch. Therefore I don't see the point of a Tag (I am not stating that developers should not use Tags - I just don't know how to use them). I am not clear what is meant by revision either. It appears that a Tag can be used like a revision and vice versa. When should a "revision" be used and when should a "tag" be used?

Original source

Related problems