On Thu, Mar 31, 2011 at 12:31 PM, Stirnweiss, Siegmund SZ/HZA-ZIT3
> I’m currently thinking about migrating from CVS to SVN, since SVN is said to
> be the successor of CVS.
> When analyzing the differences between CVS and SVN I found tags are treated
> in a different way in SVN, than they were treated in CVS, because the tag
> concept in SVN is: A tag is just a “snapshot” of a project in time.
Tags are suppose to be "snapshots" of a particular version of the
application. Sometimes you can adjust a tag if you've tagged the wrong
file, but that should be fairly rare. In Subversion, tags take less
than a second to do while in CVS, you have to tag each and every file.
Long files have to be rewritten after every tag. That, to me is a
great advantage in Subversion.
> We use tags in CVS to identify the files which have passed module tests and
> should make it into our integration test environment. When they have passed
> the integration tests we use a different tag to identify the files, which
> make up the software in/for our production environment. In addition to that
> our development model is not release driven. As a result we do not tag the
> HEAD of our complete source tree at a particular point in time.
Whoa! That's dangerous. When you pick and choose tags, you may end up
tagging the wrong file. Then, this is a CM error and not a developer
error. That means the Finger o' Blame points to you and not to the
developer who gave you the wrong file or forgot a file. You want that
Finger o' Blame pointing not at you.
I just came to my current position a couple of months ago, and that's
exactly what we were doing. Tagging particular files, and then
attempting to build from that tag. I put an immediate stop to that. We
build on the head of the branches now. That has eliminated about half
of our build errors and deployments go much smoother.
Now, there's nothing in Subversion preventing you from attaching a tag
to a particular version of a file. You simply copy files to the tag
directory one at a time. When a file gets approved, you "tag" it. It's
not the standard way to do it, but I've seen shops that do.
Even better, Subversion tracks when things were tagged and branched.
In CVS, you have no idea when a tag or a branch was created and
Received on 2011-04-01 02:14:18 CEST