Apache Subversion (often abbreviated SVN, after the command name svn) is a software versioning and a revision control system used by developers to maintain current and historical versions of files such as source code, web pages, and documentation. Working with Subversion has always been something of interest since I arrived at Frameweld a year ago. The concept is very simple when a single developer works on a file, but whenever more than one developer needed to edit the same file, at times, it would cause conflicts. Subversion handled this issue well, allowing me to review the conflicts and correct them before I committed my work.

After working on a plethora (“Jefe, what is a plethora?” If you know where that quote is from, please leave it in the comments below!) of projects and coming across the same problem, I decided to research deeper into the features subversion offered to resolve issues of this sort. I came across branching, tagging, and merging, which I felt was worth embarking on as a solution.

Instead of branching off versions, we decided we would branch “states” of a website. There are two major states a website can be in – Release and Development. The release state has a branch which contained the current working version of the website. Every time a website is updated and finalized, the branch is merged with the changes allowing the live website to be updated. The development state is a bit more complex as it encompasses both the trunk and a development branch (dev branch). All of the testing and updates happen in the trunk. However, there are scenarios where a developer must break away from the trunk in order to accomplish their work, and that is where the development branch comes in. At times, an update may encompass many components being updated, deleted or added. When this occurs, the natural flow of a website will be disturbed in order to implement the update. This may sound like a bit of work, but nothing is worse than publishing a broken website and realizing it too late!

Sam
December 09 2011 at 12:39 pm
Hey El Guapo, Nice post jefe! Just curious how frequently or infrequently you're using tags - or if its someone else making the call on when to create a tag.
Reply







Comments may be moderated. Please do not repost if you do not see your comment right away. It may be held for moderation.