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).

Comments

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 :

"**/*.pyc":{"when":"$(basename).py"},"**/__pycache__":true

Get Started with MongoDB Stitch : The New Backend As Service Offering from MongoDB

Halfway of this year, the guys from MongoDB launch their new backend as service product called MongoDB Stitch. While the launch is just for the beta, the promise of the service is quite interesting. MongoDB has been around for long now and some development stacks have been based on its database product, the MongoDB-ExpressJS-Angular-NodeJS (MEAN) and the MongoDB-ExpressJS-React-NodeJS (MERN) stacks to name a few. These stacks, however, relies on backend technology such as ExpressJS and NodeJS. The idea of provisioning servers and developing the backend solution makes it daunting for small to medium scale applications. MongoDB Atlas, at least made life much easier by providing on cloud database solution, but there must be a simpler solution, right? A solution the would stitch the backend and frontend together ( see what I did there ?).
MongoDB Stitch lets developers focus on building applications rather than on managing data manipulation code, service integration, or backend infrastruct…

Getting Started with Stateless : A Lightweight Workflow Library Alternative for .NET

A year ago, I was looking for a simple workflow manager for a project I was working. Its a medium sized application that involves tracking the state of assets in the system. Back in 2008, Microsoft (MS) introduced new technologies along with the release of Visual Studio 2008: Windows Presentation Foundation (WPF), Windows Communication Foundation (WCF), and Windows Workflow Foundation(WF). Having worked in a company utilizing mostly MS products for development, my first option was to go with WF. After doing some time reading and studying the library, I paused and decided it was too complex for my requirement. Using WF would be an overkill and the fact that it has, a rather, steep learning curve, there has to be another option. My mind toyed with the idea of developing a simple workflow library myself. It would be a learning experience but it might end up consuming a lot of time.

Why reinvent the wheel? So I started querying the internet for a better solution. I stumbled upon Stateless