Skip to main content

The Need for Source Code Control

Reading through some articles on Source Code Control , I ran into an article by a person from SourceGear and I certainly agree with his introduction. Never had I learn something about source code management in school . Yes , they did talk about the infamous SDLC but not on SCM or CVS or SVN . Of course any one from the industry knows Source Code Control is a vital part of any development.

Back when I was starting development in USL where most of my skills was gained through constant reading , reseach and unpaid overtimes , I never thought of SCM . I know Visual Studio has a Visual Source Safe , but its actual use Im really clueless (or maybe just plain uninterested). One of the main reasons I never really dug into t is because I was the only developer for the application, I was the source code and the source code was me. It was only during my remaining quarter in USL that I made some effort to look into it. Mainly because some works are now being done by other programmers plus the thought of turn over was making sense. It was only on my second company that I got exposed to this process ( SourceOffSite and Vault was the main tools). My current company uses another , unfortunately I am yet to be exposed to it.

Source Code Control has undergone several innovations. Here are some list of terms use to describe them:
1. "Manual" Version Control - The simplest kind of version control consists of using the organization’s shared file storage system (e.g. networked file server) as the source code repository.
2. Microsoft Visual Source Safe . For larger projects and to solve the corrupted repository risk, Microsoft recommends the source code control functionality built into the Visual Studio Team Foundation (a suite of software configuration management and development technologies). Visual Studio 2010 Team Foundation has been previewed on some sites.
3. Concurrent Version System (CVS) - CVS is the dominant free open-source multi-platform client-server version control system.
4. Subversion (SVN) - Subversion is an open source project, actively maintained by Collabnet/Tigris, whose goal is to supercede CVS.
5. Revision Control System (RCS) - RCS is one of the oldest open-source version control systems and only implemented exclusive locking mode, so CVS was developed to supersede it by providing concurrent versioning instead.

Given those options , plus a dozen even more , different implementation can be adapted basing on the need of a particular team or company. I ran into a white paper discussion listing the pros and cons of each options above ( be warned that the document is somewhat outdated ).

Why do we neecd it? In my point of view , here are some reasons why Source Code Control is important.

A. Developers Point of View .

1. It serves as a central repository of source codes and other important data . Database changes are also placed in the repository. Not the MDF but the SQL (fro SQL Server) code (which is in text format , thus , diff can be done)is stored. You can use the SQL Server Data Publishing Wizard to generate the code if you are working on SQL Server.
2. Changes are easily tracked. This is very important on a project where several people are working together.
3. Ease of Backup and Restoration.
4. Updated Source Codes can easily move from one machine to the other.
5. Security on source code access can be easily done.

B. Management Point Of View

1. More secured respository for source codes.
2. Tracking of changes can be done easily.
3. Ease of Source Code turn overs.

Of course, there are other benefits of Source Code Control . Just feel free to comment on the post if you want to add or question some things.

Source code control is not just for team or groups, it can also be helpful for individual developers. This can be very helpful if you want to track changes in your code or move your code from one PC to the other.Currently , at home , I am using VisualSVN Server(free) , TortoiseSVN (free) and VisualSVN (not free). Luckily , for MonoDevelop users for Linux , SVN functionality is integrated in the IDE. (a blog that i will be posting later).


Popular posts from this blog

Hiding Unwanted Python Folders and Files in Visual Studio Code

Visual Studio Code is a universal editor and pretty good at it. However, the explorer view maybe cluttered with the automatically generated folders and files confusing developers. Python is no different. Below are example files and folders generated by Python.

The __pycache__ folder and *.pyc files  are totally unnecessary to the developer. To hide these files from the explorer view, we need to edit the settings.json for VSCode. Add the folder and the files as shown below:
Copy and paste the lines below :


renaming default namespaces for VSTO projects in VS2008

So here is the scenario , you are starting a VSTO project and decided that your default namespace is ExcelAddInTesterApp . You created the project and started coding the project. After several days , your boss called and said "hey marvin , make use of this namespace OurCompany.ExcelAddInTesterApp , we have to add our company name to it got it?" . You get back to your machine thinking its just a simple property just like any project you've been working on. So you right clicked the VSTO project and hit properties . Boom! What the F@#$? The default namespace textbox is disabled!!!!

I've been through this and I googled for ways to do it and ended up with a blog from a Microsoft MVP telling me it can't be done because it is disabled. Then I thought of Refactoring, the beauty and grandeur of the renaming process. I selected the namespace and hit the refactor menu hoping that this would solve the problem . Unfortunately , it did not rather it displayed the message box …

Automatic Properties and Object Initializers in .Net 3.5

With the release of .Net 3.5 alongside with Visual Studio 2008 , new enhancements was again introduced . Some maybe well pronounced such as the inclusion of WCF, WPF , LINQ in .Net 3.0 and some just came unnoticed. If you have been accustomed of using a particular method or technique in implementing a certain code in .Net 2.0 , because of backward compatibility , you may not even notice that there are new ways of implementing it in .Net 3.5.

Here are two new concepts in .Net 3.5 that a developer may not notice ( at least in my opinion ) : Automatic Properties and Object Initializers . To illustrate these two , I am going to present the pre-.Net 3.5 way (.Net 2.0) and the .Net 3.5 way in creating a simple class with simple properties.

Automatic Properties

Creating a class can be tedious , especially when working with a list of properties , . One way to get around having to type the code for a private field and its public property getter and setter is to use a refactoring tool. However, …