title: How are tags made in Subversion?
body: <p>I know how to use tags in subversion. I create a tag every time I get to a release milestone.</p>
  
  <p>What I don't quite understand is how they work. </p>
  
  <p>Is a tag just a copy, made from what ever revision I specify? Or is a tag more like a reference, where internally subversion just says <code>GO TO /trunk/project/ Revision 5</code> or whatever.</p>
  
  <p>The command to create a tag (<code>svn copy</code>) seems to imply that it's a copy, but I've seen other people write that subversion doesn't really copy anything.</p>
  
  <p>Say I dump just the HEAD revision of a repository. I don't care about any history except the tags. Are those tags dumped along with the rest of the Head revision?</p>
  
  <p>Finally, is all this just programming magic that I don't really want to know.</p>