SynSVN: Development Environments & Source Control

A common challenge in developing web-based software that requires active development after deployment is managing the codebase and tracking software versions and revisions. This is further compounded by the lack of a standard approach towards the use of development and testing environments and production environments.

As an almost-exclusive developer of web-based applications, we examined the field of available version control solutions and found that the open source Subversion (SVN) software package allows for high customizability and the writing of scripts to interface with its inner workings.

As a result of our research, we set out to build a tool to be used internally to streamline the creation and management of each of the separate development environments needed in place throughout the development of a web-based application. The resulting tool, which we called SynSVN, builds an interface layer over Subversion that allows for the full management of the several different code repositories needed and the creation of a live, production environment clear of all development code, which still maintains the ability to perform rollbacks quickly and easily.

Since we have found that this problem is rather common, we have decided to make available SynSVN as an open source solution. This means that all code the tool is built on is published and available publicly for consumption and modification by other developers. By making open source an internal solution like this, we find that it brings us significant value in the community by way of identifying bugs and adding more features to a tool we make use of day-to-day. We've determined the value added by the community far outweighs any value keeping such a tool proprietary may have brought and are happy to contribute to the developer community in such a way. We're actively releasing the aforementioned Canopy framework in a similar fashion.

We now are able to establish complete development and production code repositories for a given project (even if they span across multiple servers) while still maintaining all version control and ensuring no code changes are ever lost. Having a dedicated testing environment further ensures that bugs and errors rarely if ever meet a user in the production environment, as we thoroughly test all of our releases in the testing environment before moving them forward to production.

 

HTMList.com: Synapse Studios' Blog

Is PHP 5.3 Terminal? Well, It's Getting One For Namespaces

A language lives and dies by how easy it is for a person to express something within that language. But the ease in expression is much like the type I and type II error rate in a statistical test: as you adjust one to be nearer to where you want it to be, the other gets farther away. So the architects of a language have to choose between adding more keywords and constructs or having longer, but simpler sequences of existing ones.

PHP is a very easy language to learn and use because it has a syntax that is a simplified sampling from C++/Java and Perl. People who use these languages pick up PHP fast, and people who haven't used any languages often learn PHP with as much ease as they would learn Perl.

Posted on October 27, 2008 by Edgar HasslerRead More »

Portfolio Spotlight

Rebate Promotions

Synapse Studios worked to develop a comprehensive rebate fulfillment and management system. Users needed to be able to quickly and easily process their rebates online which required a simple, intuitive front-end interface that just worked. Meanwhile, the backend manages over half a million transactions annually, delivering all aspects of the fulfillment process in a secure, intranet-based web solution.

Read more »