svn tagging is a joke

I keep reading the phrase “Git isn’t better than Subversion, it’s just different”.

I’m sure a few years ago people said “SVN isn’t better than CVS, it’s just different”.

Anyway, here’s one key aspect that shows how primitive svn is:

Subversion doesn’t actually have tags or branches. It only has folders.

The usual branches and tags directories you see in most svn repositories are not special. They’re just a naming convention.

After you “tag” a release (basically copy the trunk folder into a new folder in tags), you can modify it at will and Subversion won’t complain.

Compare with Git or Mercurial, where a tag is a read-only pointer to a specific changeset.

The same with branches: in svn you create an entire copy of the trunk folder, while in git you just create a pointer which advances as you make revisions.

If you’re interested in learning more about git, I recommend reading the Pro Git book. Also, Hg Init is an awesome introduction to Mercurial and to distributed version control systems in general.

comments powered by Disqus