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!
3 Comments
Jump to Comments Box