When a Subversion Repository is Missing the Standard Trunk/Tags/Branches Base Folders
Subversion is basically a fancy file system. When storing files in a Subversion repository, you can use any folder names you like. The convention is to have three top-level folders called “trunk”, “tags”, and “branches”, with the master copies of the project’s files under trunk. Making a tag is merely a matter of copying what’s in trunk to a subfolder of tags, and starting a branch is merely a matter of copying what’s in trunk to a subfolder of branches. There is absolutely no difference between tags and branches as far as Subversion is concerned. (Actually, you can tag or branch anything, not just what’s in trunk.) When I say, “copy”, I’m referring to the Subversion concept of “cheap copies.” Under the hood, the file contents and the differentials are all stored together. The observable file system is actually just lots and lots of pointers to the actual content.
Sometimes, mistakenly, Subversion repositories are created with all of the project files directly at the root level. So, what do you do when a Subversion repository is missing the standard trunk/tags/branches base folders and you want to create a tag or branch?
