Jason's Infrequent Ramblings

work,play,programming.

Tag And Release

Dscf3942

No, I'm not talking about fishing or birds.

I'm talking about tracking versions of software each time you release.
This should be common practice for any developer releasing code. But
you never know, might be some students or naive ones reading. I
certainly wasn't thought it in college!

Version control is a great tool for development. I'm partial to Subversion
(svn) myself, but they concepts are similar in all of them. The main
benefit of using something like svn is that it allows a team to work
on documents and code at the same without the risk of over writing
changes a colleague made. With people making frequent commits of
changes back into the version control system, almost nothing is ever
lost.

But it's not all about losing stuff, it's also about finding stuff. An
active project under a develop-release cycle can change very quickly
from day to day. One can run the risk of serious headaches if they
don't keep track of what code is where. What you don't want to end up
doing is reaching a point where you deployed a project say, on a
Monday, and your team keeps working away. A week later, a bug is found
in the version you put out. Patching might not be so simple if the
code base your working on has changed too much since the release.
You're caught between 2 points. you can't release the current code you
are working on, perhaps there are incomplete features, or new bugs at
testing haven't found yet.

By tagging the code, you are creating a copy of the code at the exact
moment of release. That copy never changes. Even if you get caught out
later, you can go back to that copy, fix just the bug, release and
make a new copy.

A very simple technique, but one that I hope every one is using.

Filed under  //   .net   owl   programming   software development